【问题标题】:Python argparse - arguments strip off when bash special character is passed as argumentPython argparse - 当bash特殊字符作为参数传递时,参数会被剥离
【发布时间】:2017-02-18 18:23:46
【问题描述】:

我使用 argparse 编写 CLI 工具。

下面是我的代码sn-p:

parser.ArgumentParser()
parser.add_argument('--username')
parser.add_argument('--password')
args = parser.parse_args()
print(args.password)

我在我的 Mac 上运行脚本:

>>> prog.py --username xyz --password abc$xyz

输出:

>>> abc

我知道是 bash shell 将 '$xyz' 解释为 bash 变量并尝试替换 '$xyz'

有什么方法可以在不将密码括在引号中的情况下解决这个问题?

【问题讨论】:

  • 退格转义美元符号,所以你可以这样做:\$xyz
  • 这不是 Python 问题,这是一个如何在 bash 中转义特殊字符 问题。
  • 我知道这不是 Python 问题,我什至知道如何在 bash 中转义特殊字符。 @dkasak 回答正确。

标签: python bash argparse


【解决方案1】:

你可以在$前面加一个反斜杠:prog.py --username xyz --password abc\$xyz

否则,不行。您正确地观察到是 bash 这样做了,当 Python/argparse 收到命令时,没有什么可以做的。

【讨论】:

    猜你喜欢
    • 2018-03-29
    • 2014-09-21
    • 2020-04-05
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多