python 子过程原因 bash 脚本 - 您需要打印报价
我对子过程和打印引文有问题。
我的脚本 Python 接受用户输入,有点恶化它 - 我需要他将他的结果发送给脚本 bash 因此。
我将赢的地方,它是单引号。 Python 试图抢夺他们。
我用它来进行测试。
返回指向2单引号的不可接受的语法。 我还尝试了上面没有括号,并在外面使用单引号和双引号等等。
另一个想要。
正如我上面所说的那样, 'var == a var == b; othervar == c' 来自脚本 python /以字符串格式/ - 我需要如下称之为子过程。
我只需要把单引号放在价值周围 myvariables, 如在第一个例子中。
有没有关于我从正确的方法下降的说明?
谢。
我的脚本 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"/
返回指向2单引号的不可接受的语法。 我还尝试了上面没有括号,并在外面使用单引号和双引号等等。
另一个想要。
正如我上面所说的那样, 'var == a var == b; othervar == c' 来自脚本 python /以字符串格式/ - 我需要如下称之为子过程。
subprocess.Popen/[myscript.sh myvariables /path/to/files], shell=True, executable="/bin/bash"/
我只需要把单引号放在价值周围 myvariables, 如在第一个例子中。
有没有关于我从正确的方法下降的说明?
谢。
没有找到相关结果
已邀请:
3 个回复
三叔
赞同来自:
subprocess.Popen/['myscript.sh "var=11; ignore all" /path/to/files'], shell=True, executable="/bin/bash"/
或者如果 /path/to/files 是您的环境中的变量 Python:
subprocess.Popen/['myscript.sh "var=11; ignore all" %s' % path_to_files], shell=True, executable="/bin/bash"/
说过,我
最终
我建议您不要使用参数 shell. 原因是脆弱性。 您将获得更可靠的方式来这样做:
subprocess.Popen/["/bin/bash", "myscript.sh", "var=11; ignore all", path_to_files]/
注意 "var=11; ignore all" 作为脚本发送为一个参数。 如果这些是单独的参数,请使它们单独的列表元素。
石油百科
赞同来自:
subprocess.Popen/["/bin/bash", "myscript.sh", '""' + string_to_be_quoted + '""', path_to_files]/
冰洋
赞同来自:
["myscript.sh", "var=11; ignore all", "/path/to/files"]
这应该是工作。 如果您的脚本真的以某种方式依赖于引号,请尝试此操作 /我不知道子过程如何运作的详细信息/:
["myscript.sh", "'var=11; ignore all'", "/path/to/files"]