在Linux上运行命令而不会中断

时间:2013-12-22 09:14:21

标签: linux scripting command

我有多个命令。我希望在没有中断的情况下一步在linux上运行所有这些命令(等到第一个命令的输出完成然后再运行第二个等等。)如果有办法做到这一点??我有所有要在文本文件中运行的命令。

3 个答案:

答案 0 :(得分:0)

尝试:

command1 ; command2 ; command3

如果要将command1的输出传递给command2,最后运行command3:

command1 | command2 ; command3

分号方法不会考虑前一个命令是否成功。如果要在command1失败时停止执行,可以使用:

command1 && command2 ; command3

答案 1 :(得分:0)

如果您想使用单个命令行执行此操作,可以使用分号连接命令:

command1 ; command2 ; command3

如果您希望以后的命令仅在较早的命令成功时运行,请将它们与“&&”连接:

command1 && command2 && command3

答案 2 :(得分:0)

如前面的答案中所述,您可以使用;&&来终止或分离命令列表中的命令,其中;表示简单的无条件排序和&&表示仅在前一个命令成功时才执行以下命令。 (其他命令分隔符包括&|||等;请参阅开头附近的 SHELL GRAMMAR 部分中的列表小节bash手册页的详细说明。)

要使列表中的命令与这些命令的输出间穿插,您可以使用set -x打开shell的XTRACE选项。稍后,使用set +x将其关闭。 XTRACE显示命令的格式由PS4参数的内容控制。以下是两行命令输入和14行输出的示例脚本:

$ alias d='date +%N'
$ d;d; set -x; d;d; echo PS4 is $PS4; d; set +x; d;d;d
726496303
729638881
+ date +%N
733073117
+ date +%N
736249778
+ echo PS4 is +
PS4 is +
+ date +%N
739730109
+ set +x
743027175
746206908
749367086