接收 shell 命令作为 OptionParser 字符串参数
Receive a shell command as an OptionParser string argument
我正在使用 OptionParser(),并定义如下:
parser.add_option("--cmd", dest="command", help="command to run")
但是,如果我提供复杂的 shell 命令,例如:
python shell.py --cmd "for i in `seq 1 10`; do xxx; done"
并在内部打印 options.command
,我得到了一些出乎我意料的结果:
for i in 1
2
3
4
5
6
7
8
9
10; do
有没有好的方法来传递作为 shell 命令的 OptionParser 选项?
调用时:
python shell.py --cmd "for i in `seq 1 10`; do xxx; done"
shell 首先用它的输出替换包含在` 中的命令。因此,您实际调用的命令是:
python shell.py --cmd "for i in 1
2
3
4
5
6
7
8
9
10; do ..."
要避免这种情况:
调用命令时转义 ` 字符:
python shell.py --cmd "for i in \`seq 1 10\`; do xxx; done"
使用强引号(用 ' 括起来的字符串)
python shell.py --cmd 'for i in `seq 1 10`; do xxx; done'
我正在使用 OptionParser(),并定义如下:
parser.add_option("--cmd", dest="command", help="command to run")
但是,如果我提供复杂的 shell 命令,例如:
python shell.py --cmd "for i in `seq 1 10`; do xxx; done"
并在内部打印 options.command
,我得到了一些出乎我意料的结果:
for i in 1
2
3
4
5
6
7
8
9
10; do
有没有好的方法来传递作为 shell 命令的 OptionParser 选项?
调用时:
python shell.py --cmd "for i in `seq 1 10`; do xxx; done"
shell 首先用它的输出替换包含在` 中的命令。因此,您实际调用的命令是:
python shell.py --cmd "for i in 1
2
3
4
5
6
7
8
9
10; do ..."
要避免这种情况:
调用命令时转义 ` 字符:
python shell.py --cmd "for i in \`seq 1 10\`; do xxx; done"
使用强引号(用 ' 括起来的字符串)
python shell.py --cmd 'for i in `seq 1 10`; do xxx; done'