python argparse shell 特殊字符
python argparse shell special chars
我有一个必须输入密码的脚本。
这适用于大多数密码,但 "good" 除外,我得到奇怪的结果。
#! /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 将密码视为特殊字符。
我的问题是,是否有办法在我的代码中禁用它并且不强制用户正确转义该字符?
当您的代码获取参数时,shell 已经处理了它们。所以你必须在shell命令行上用单引号或转义来保护它们。
例如,而不是
./test.py -t test$$test
你应该使用
./test.py -t 'test$$test'
我有一个必须输入密码的脚本。 这适用于大多数密码,但 "good" 除外,我得到奇怪的结果。
#! /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 将密码视为特殊字符。
我的问题是,是否有办法在我的代码中禁用它并且不强制用户正确转义该字符?
当您的代码获取参数时,shell 已经处理了它们。所以你必须在shell命令行上用单引号或转义来保护它们。
例如,而不是
./test.py -t test$$test
你应该使用
./test.py -t 'test$$test'