【发布时间】:2015-08-04 13:23:05
【问题描述】:
我想在上一条命令完成后在同一行中运行多个命令。
我在 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 中设置了一个视图,然后我想执行一个 perl 程序。问题是它没有,它只是设置视图(我需要它来执行 perl 程序)但它从未真正启动 perl 程序,所以问题是我做错了什么? start_view myView 似乎启动了一个新的 shell,那么如何在视图启动的新创建的 shell 中执行 perl 脚本呢?
提前致谢。
【问题讨论】:
-
也许你告诉我们
start_view,因为我们只能猜测...... -
你试过
;而不是&&吗?也许第一个命令返回不成功。 -
如果
start_view正在启动一个新的shell,它可能根本不会返回。也许start_view可以选择允许它在它创建的shell 中启动一个进程。 -
如果这类似于 ClearCase,
start_view将有一个选项(例如-c),您可以在其中给它一个命令以在已启动的 shell 中运行在视图的上下文中;如果存在,请将其余命令移到那里。此外,&&在失败时会短路(即非零状态),但;不会(即每个命令连续运行)。您也可以为反向短路执行||(即仅在出现故障时执行)。例如尝试:/bin/true && echo TRUE || echo FALSE和/bin/false && echo TRUE || echo FALSE -
您在使用 Rational ClearCase 的
startview吗?也许你想要setview -c your_commands_here? setview doc