【发布时间】:2011-06-15 11:04:56
【问题描述】:
我在子流程和打印报价方面遇到问题。
我的 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"无关。 (另外:我不能很好地引用你引用的例子,你介意给出一个行号吗?)
标签: python bash subprocess