【发布时间】:2017-08-17 04:52:50
【问题描述】:
我正在尝试编写一个接受命令行输入并执行一些操作的 python 文件。输入将由 a-z、[、]、( 和 ) 组成。我制作了以下程序只是为了检查我是否可以继续进行:
#!/usr/bin/env python
import sys
print str(sys.argv)
我做了chmod +x program 并尝试调用./program qwerty (abc) [hi] 并返回:
-bash: 意外标记 `(' 附近的语法错误
有没有办法改变程序,让它接受参数中的括号?
注意:我也尝试在括号前放置方括号,它返回相同的错误。
【问题讨论】:
-
()对 shell 有特殊意义——它在子 shell 中调用封闭的命令。用双引号将您的字符串括起来以删除特殊含义 -./program qwerty "(abc)" "[hi]" -
我遵循规范,无法更改上面输入的、已编辑的问题。
-
在程序运行之前在shell中失败了,所以不,你不能在程序中改变它。