Python argparse - 当 bash 特殊字符作为参数传递时参数剥离
Python argparse - arguments strip off when bash special character is passed as argument
我使用 argparse 编写 CLI 工具。
下面是我的代码片段:
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'
有什么方法可以解决这个问题而不用引号括起密码吗?
您可以在 $
前加一个反斜杠:prog.py --username xyz --password abc$xyz
.
否则,没有。您正确地观察到是 bash 正在这样做,所以当 Python/argparse 收到命令时,已经无能为力了。
我使用 argparse 编写 CLI 工具。
下面是我的代码片段:
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'
有什么方法可以解决这个问题而不用引号括起密码吗?
您可以在 $
前加一个反斜杠:prog.py --username xyz --password abc$xyz
.
否则,没有。您正确地观察到是 bash 正在这样做,所以当 Python/argparse 收到命令时,已经无能为力了。