我有一个脚本,必须输入密码。 这适用于大多数密码,除了“好”密码,我得到奇怪的结果。
#! /usr/local/bin/python
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument("-t", "--test")
print(parser.parse_args())
并用
调用它./test.py -t test$$test
将打印
Namespace(test='test5365test')
shell将密码视为特殊字符。
我的问题是,如果有一种方法可以在我的代码中禁用它而不强制用户正确地转义字符?
答案 0 :(得分:6)
当您的代码获取args时,shell已经处理了它们。因此,您必须使用单引号或转义保护shell命令行上的。
例如,而不是
./test.py -t test$$test
你应该使用
./test.py -t 'test$$test'