我需要使用“ &&”一步执行多个命令。所以我创建工厂如下:
f1 = factory.BuildFactory()
f1.addStep(shell.ShellCommand, command=["sh", "-c", "pwd", "&&", "cd", "/home/xxx/yyy", "&&", "pwd"])
但是在执行过程中,发现buildbot对其进行了如下处理,这使得无法执行
sh -c pwd '&&' cd /home/xxx/yyy '&&' pwd
我所期望的是
sh -c pwd && cd /home/xxx/yyy && pwd
有人可以帮我吗?谢谢。
由于您仍在使用/bin/sh
,因此只需使用一个字符串即可调用它:
f1.addStep(shell.ShellCommand, command="pwd && cd /home/xxx/yyy && pwd")
如文档所述:
ShellCommand参数为:
命令
字符串(首选)或单个字符串(不推荐使用)的列表,用于指定要运行的命令。最好使用字符串列表,因为它可以直接用作argv数组。使用单个字符串(带有嵌入式空格)要求buildslave将字符串传递给/ bin / sh进行解释,这引发了有关如何转义或解释shell元字符的各种难题。
不建议这样做,但是无论如何,您仍然需要该Shell,因为&&
它仅在Shell中解释。调用sh
只是多余的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句