Python argparse-当bash特殊字符作为参数传递时,参数将被去除
我正在使用argparse编写CLI工具 下面是我的代码片段:Python argparse-当bash特殊字符作为参数传递时,参数将被去除,python,bash,argparse,Python,Bash,Argparse,我正在使用argparse编写CLI工具 下面是我的代码片段: parser.ArgumentParser() parser.add_argument('--username') parser.add_argument('--password') args = parser.parse_args() print(args.password) 我在Mac上运行脚本: >>prog.py--用户名xyz--密码abc$xyz 输出: >>abc 我知道是bashshell将“$xyz”解释为bas
parser.ArgumentParser()
parser.add_argument('--username')
parser.add_argument('--password')
args = parser.parse_args()
print(args.password)
我在Mac上运行脚本:
>>prog.py--用户名xyz--密码abc$xyz
输出:
>>abc
我知道是bashshell将“$xyz”解释为bash变量并尝试替换“$xyz”
有没有办法不用把密码括在引号里就可以解决这个问题 您可以在
$
前面加一个反斜杠:prog.py--username xyz--password abc\$xyz
否则,不会。您正确地观察到是bash在执行此操作,当Python/argparse收到命令时,已经没有什么可以做的了。您可以在
$
前面加一个反斜杠:prog.py--username xyz--password abc\$xyz
否则,不会。您正确地观察到是bash在这样做,在Python/argparse接收到命令时,没有什么可以做的。backspace转义美元符号,因此您可以这样做:\$XYZ这不是Python的问题,这是一个如何在bash中转义特殊字符的问题。我知道这不是Python的问题,我甚至知道如何在bash中转义特殊字符@dkasak回答正确。backspace转义美元符号,因此您可以这样做:\$XYZ这不是Python问题,这是一个如何转义bash问题中的特殊字符的问题。我知道这不是Python问题,我甚至知道如何转义bash中的特殊字符@德卡萨回答正确。