python argparse shell特殊字符

时间:2015-01-12 23:59:34

标签: python bash shell argparse

我有一个脚本,必须输入密码。 这适用于大多数密码,除了“好”密码,我得到奇怪的结果。

#! /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将密码视为特殊字符。

我的问题是,如果有一种方法可以在我的代码中禁用它而不强制用户正确地转义字符?

1 个答案:

答案 0 :(得分:6)

当您的代码获取args时,shell已经处理了它们。因此,您必须使用单引号或转义保护shell命令行上的

例如,而不是

./test.py -t test$$test

你应该使用

./test.py -t 'test$$test'