【发布时间】:2013-01-15 17:07:10
【问题描述】:
我正在通过 bash 包装器调用 python 脚本,但在处理包含引号空格的参数时遇到了问题。
我把python脚本的参数组装成一个bash变量,比如
opt="-c start.txt"
opt+="--self 'name Na'"
然后用类似这样的方式调用 python 脚本:
python test_args.py $opt
在 Python 中打印 sys.argv 时,我得到了
['test-args.py', '-c', 'start.txt', '--self', "'name", "Na'"]
而不是预期的
['test-args.py', '-c', 'start.txt', '--self', 'name Na']
我在调用脚本的时候尝试过使用数组,比如
python test_args.py ${opt[@]}
然后我明白了
['test-args.py', "-c start.txt --self 'name Na'"]
还有其他想法吗?
【问题讨论】:
-
也许 this 会有所帮助(查看 eval 解决方案)。