我想在完成前一个命令后在同一行中运行多个命令。
我在 python 脚本中执行以下操作:
os.system("start_view myView && perl /home/user/Development/count_test.pl -rev 001 -project myproject && /usr/bin/python /home/user/Development/setDoneFlag_Count_Lines.py")
首先我在clearcase start_view myview中设置了一个 View ,然后我想执行一个perl程序。问题是它没有,它只是设置 View (我需要它来执行 perl 程序)但它从未真正启动 perl 程序,所以问题是我做错了什么吗?似乎start_view myView 启动了一个新的shell,那么如何在 View 启动的新创建的shell 中执行perl 脚本呢?
提前致谢。
最佳答案
一般来说,多个依赖命令在从 os.system() 调用时应该起作用:
>>> rv = os.system("ls /dev/null && grep mhawke /etc/passwd")
/dev/null
mhawke:x:1000:1000:mhawke:/home/mhawke:/bin/bash
>>> rv
0
但是,如果一个命令失败(由非零退出状态确定),则不会执行以下命令:
>>> rv = os.system("ls /phantom && grep mhawke /etc/passwd")
ls: cannot access /phantom: No such file or directory
>>> rv
512
那么,您确定 start_view
返回退出代码 0 吗?您确定 start_view
完全返回了吗? - 是否可以阻止等待输入。您确定该命令实际上不是 startview myView
?
您可以通过在命令行上执行此命令找到答案:
$ start_view myView
$ echo $?
如果它显示 0
,则尝试链中的下一个命令,直到找到罪魁祸首。
关于python - 依次运行多个命令行 linux python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30398074/