命令行中的&&和||

Shell

Bash shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中。当 $? == 0 时,表示执行成功;当 $? != 1 时,表示执行失败。有时候,我们需要下一条命令依赖前一条命令执行成功与否的状态。

如:只有在成功地执行一条命令之后再执行另一条命令,或者只有在前一条命令执行失败后,再执行下一条命令等。Bash shell 提供了 && 和 || 来实现命令执行控制的功能,shell 将根据 && 或 || 前面命令的返回值来控制其后面命令的执行。

&&

只有在前一条命令执行成功后,才会执行后面的命令

||

只有前一条命令是否执行失败,才会执行后面的命令

举个例子:

xinlin@ubuntuserver:~/acme-tiny$ cat tt
cat: tt: No such file or directory

xinlin@ubuntuserver:~/acme-tiny$ echo $?
1

xinlin@ubuntuserver:~/acme-tiny$ cat tt && echo 'abcde'
cat: tt: No such file or directory

xinlin@ubuntuserver:~/acme-tiny$ cat tt || echo 'abcde'
cat: tt: No such file or directory
abcde

cat tt时会执行失败的命令,因为没有tt这个文件,
使用&&连接echo命令,echo命令就不会执行;
使用||连接echo命令,cat tt执行失败后echo才会执行。

如果想让多条命令无论如何都执行呢?

使用逗号 ;

xinlin@ubuntuserver:~/acme-tiny$ cat ttt ; echo 'abcde'
cat: ttt: No such file or directory
abcde

总结一下:

&表示任务在后台执行

&&表示前一条命令执行成功时,才执行后一条命令

|表示管道,上一条命令的输出,作为下一条命令参数

||表示上一条命令执行失败后,才执行下一条命令

;表示不管前面的命令如何,后面的都会执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值