我遇到了子进程和打印引号的问题。python子进程调用bash脚本 - 也需要打印报价
我的Python脚本需要用户输入,将它篡改一下 - 我需要它以这种方式将结果发送到bash脚本。
myscript.sh 'var1 == a var2 == b; othervar == c' /path/to/other/files
我挂断的地方是单引号。 Python试图将它们撕掉。
我把这个用于我的测试。
subprocess.Popen([myscript.sh 'var=11; ignore all' /path/to/files], shell=True, executable="/bin/bash")
它返回无效语法指向第二个单引号。我也尝试了上面没有括号和外部使用单引号和内部双引号等。
其他 - 似。
正如我上面说的'var == a var == b; othervar == c'是从python脚本(以字符串格式)派生的 - 我需要在子进程中调用它,像这样。
subprocess.Popen([myscript.sh myvariables /path/to/files], shell=True, executable="/bin/bash")
我只需要像第一个例子一样把单引号放在myvariables的值周围。
任何指针,我要去哪里正确的方法?
谢谢。
我想我们今天有这个错误。是什么让人们认为这是远程有效的语法?列表项目用逗号分隔。而一个空白的“foo”与字符串“foo”无关。 (另外:我不能罚你引用的例子,你介意给出一个行号?) – delnan 2011-01-25 20:17:37