我要指定以下两个参数:
parser.add_argument("-s", "-server", help="specify the server", required=True)
parser.add_argument("-pw", "-password", help="Provide your Admin Password", required=True)
除非我的“测试”/虚拟密码发现了一些问题,否则这种方法很有效。
我的虚拟密码是90opl;./
如果我运行./test.py -s testserver -pw 90opl;./
我收到错误,因为它没有将90opl;./
解释为' 90opl;,./ '
所以auth失败然后-bash
说./: Is a directory
(pw的结尾)。
要解决这个问题,我必须运行./test.py -s testserver -pw '90opl;./'
- 必须使用单引号。
有没有办法解决这个问题?
我似乎无法在网上找到答案。我已经尝试指定type=str
无济于事。
很抱歉,如果这有一个明显的修复,但我有点像一个python noob。
答案 0 :(得分:3)
这不是Python问题。这是一个shell问题。
Bash shell在大多数情况下都对;
字符进行了特定的解释,引用它是最安全可读的方法来避免这种解释。
没有Python或argparse
库可以做到这一点,因为bash
在Python看到它之前解释命令行。
如果你必须在命令行输入一个默认的虚拟密码,那就太多了......让它变得更简单,不包含任何shell元字符:-P。