Welcome 微信登录

首页 / 操作系统 / Linux / Linux 基础入门教程----命令执行顺序控制与管道

介绍

顺序执行、选择执行、管道、cut 命令、grep 命令、wc 命令、sort 命令等,高效率使用 Linux 的技巧。

一、命令执行顺序的控制

1.顺序执行多条命令

通常情况下,我们每次只能在终端输入一条命令,按下回车执行,执行完成后,我们再输入第二条命令,然后再按回车执行…… 你可能会遇到如下使用场景:我需要使用apt-get安装一个软件,然后安装完成后立即运行安装的软件(或命令工具),又恰巧你的主机才更换的软件源还没有更新软件列表(比如之前我们的环境中,每次重新开始实验就得sudo apt-get update,现在已经没有这个问题了),那么你可能会有如下一系列操作:$ sudo apt-get update# 等待——————————然后输入下面的命令$ sudo apt-get install some-tool# 等待——————————然后输入下面的命令$ some-tool这时你可能就会想要是我可以一次性输入完,让它自己去一次执行各命令就好了,这就是我们这一小节要解决的问题。简单的顺序执行你可以使用;来完成,比如上述操作你可以:$ sudo apt-get update;sudo apt-get install some-tool;some-tool# 让它自己运行

2.有选择的执行命令

关于上面的操作,不知你有没有思考过一个问题,如果我们在让它自动顺序执行命令时,前面的命令执行不成功,而后面的命令又依赖与上一条命令的结果,那么就会造成花了时间,最终却得到一个错误的结果,而且有时候直观的看你还无法判断结果是否正确。那么我们需要能够有选择性的来执行命令,比如上一条命令执行成功才继续下一条,或者不成功又该做出其它什么处理,比如我们使用which来查找是否安装某个命令,如果找到就执行该命令,否则什么也不做(虽然这个操作没有什么实际意义,但可帮你更好的理解一些概念):$ which cowsay>/dev/null && cowsay -f head-in ohch~你如果没有安装cowsay,你可以先执行一次上述命令,你会发现什么也没发生,你再安装好之后你再执行一次上述命令,你也会发现一些惊喜。上面的&&就是用来实现选择性执行的,它表示如果前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果)返回0则执行后面的,否则不执行,你可以从$?环境变量获取上一次命令的返回结果:学习过 C 语言的用户应该知道在 C 语言里面&&表是逻辑与,而且还有一个||表示逻辑或,同样 Shell 也有一个||,它们的区别就在于,shell中的这两个符号除了也可用于表示逻辑与和或之外,就是可以实现这里的命令执行顺序的简单控制。||在这里就是与&&相反的控制效果,当上一条命令执行结果为≠0($?≠0)时则执行它后面的命令:$ which cowsay>/dev/null || echo "cowsay has not been install, please run "sudo apt-get install cowsay" to install"除了上述基本的使用之外,我们还可以结合这&&||来实现一些操作,比如:$ which cowsay>/dev/null && echo "exist" || echo "not exist"我画个流程图来解释一下上面的流程:

思考

上面我们讲到将&&||结合起来使用,那么是否以任意顺序都行?比如上面我们是&&在前||在后,反过来可以么?会不会有问题?更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-08/121444p2.htm
  • 1
  • 2
  • 下一页
Linux 基础入门教程----简单的文本处理Ubuntu安装图片浏览与管理器 Phototonic 1.6.17相关资讯      Linux管道  Linux基础入门教程  Linux命令执行顺序控制 
  • Linux基础知识:管道输出  (今 10:43)
  • Linux管道的作用--管道命令在脚本  (04月11日)
  • Linux 基础入门教程----数据流重定  (08/10/2015 14:40:20)
  • RHEL7管道与重定向  (08月26日)
  • Linux 基础入门教程----简单的文本  (08/10/2015 14:41:32)
  • Linux 基础入门教程----正则表达式  (08/10/2015 14:33:08)
本文评论 查看全部评论 (0)
表情: 姓名: 字数