首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在linux上无中断地运行命令

在linux上无中断地运行命令
EN

Stack Overflow用户
提问于 2013-12-22 17:14:21
回答 3查看 239关注 0票数 0

我有多个命令。我想在linux上一步到位地运行所有这些命令(等待第一个命令的输出完成,然后运行第二个命令,依此类推) .If有没有办法做到这一点??我有所有的命令要在文本文件中运行。

EN

回答 3

Stack Overflow用户

发布于 2013-12-22 17:18:10

尝试:

代码语言:javascript
运行
复制
command1 ; command2 ; command3

如果您希望通过管道将输出从command1传输到command2,并最终运行command3:

代码语言:javascript
运行
复制
command1 | command2 ; command3

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

代码语言:javascript
运行
复制
command1 && command2 ; command3
票数 0
EN

Stack Overflow用户

发布于 2013-12-22 17:18:42

如果您希望使用单个命令行来完成此操作,则可以使用分号连接命令:

代码语言:javascript
运行
复制
command1 ; command2 ; command3

如果您希望后面的命令只在前面的命令成功的情况下运行,请用“&&”将它们连接起来:

代码语言:javascript
运行
复制
command1 && command2 && command3
票数 0
EN

Stack Overflow用户

发布于 2013-12-23 00:14:01

正如在前面的答案中提到的,您可以使用;&&来终止或分隔命令列表中的命令,其中;表示简单的无条件排序,&&表示只有在前一个命令成功时才执行下面的命令。(其他命令分隔符包括&|||等;有关它们如何工作的详细信息,请参阅bash手册页开头的SHELL语法小节中的小节列表。)

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

代码语言:javascript
运行
复制
$ 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20727865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档