shell命令执行顺序

浏览: 1475

每一行称为管道,一行可以是标准输入或脚本,一行可以有一个或多个命令,可以用一个或多个管道字符(|)隔开,或者是其他符来分割单个命令:

command1;command2       分号:命令间无逻辑关系。命令按顺序从前向后依次执行,所有命令最终都会被执行,即使分号前命令出错也不影响后面的命令
command1 | command2     管道 :处理前一个命令正确输出,不处理错误输出
;管道命令右边命令,必须得能够接收标准输入流命令
command1 > command2 重定向:左边的命令应该有标准输出 > 右边只能是文件
command1 < command2 重定向:左边的命令应该需要标准输入 < 右边只能是文件
command & 后台运行:将 & 前面的命令放入后台执行,立即返回到交互bash环境,不占用控制台
nohup command & 后台运行:将 & 前面的命令放入后台执行,即使关掉控制台退出帐号,仍继续运行
command1 & command2 后台运行:前面的命令被放入后台,立即执行后面的命令,相当于两个命令并行,两个命令无任何逻辑关系
command1 && command2    逻辑 AND:上一条命令运行成功后,才运行下一条命令
command1 || command2    逻辑 OR: 上一条命令运行失败后,才运行下一条命令


command1                依次执行每行命令,前后无逻辑关系,即使command1出错,command2仍执行
command2

如:

ls aa
echo 'haha'

ls: cannot access 'aa': No such file or directory
haha
command > file 2>&1      合并到一个窗口输出。1 代表stdout标准输出,2 代表stderr标准错误。重定向的设置让2重定向到1,即stderr重定向到stdout在一起重定向。其中&只是区分1是代表stdout而不是代表一个文件名。

command |& tee output.txt 合并到一个窗口输出,同时屏幕显示。到文件以overwrite方式保存
command |& tee -a output.txt 合并到一个窗口输出,同时屏幕显示。到文件以append方式保存
推荐 1
本文由 safa 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册