首页 > 代码库 > SHELL脚本攻略(学习笔记)--1.3 多命令逻辑执行顺序

SHELL脚本攻略(学习笔记)--1.3 多命令逻辑执行顺序

Linux中可以使用分号“;”、双and号“&&”和双竖线“||”来连接多个命令。

1.3.1 分号;

当多个命令想在写在一行上同时执行,可以在每个命令后使用分号“;”。多个命令之间没有任何逻辑关系,所有写出来的命令都会执行,即使某个命令有错误也不影响其他命令。

[root@xuexi ~]# ls das;echo "hdakl"

ls: cannot access das: No such file or directory

hdakl

1.3.2 &&

逻辑与。command1  &&  command2,只有当command1正确执行才执行command2,如果command1不正确执行,则不执行command2。如何判断正确,bash内部会通过预定义变量“$?”来判断。

[root@xuexi ~]# echo "hdakl" && ls ds 

hdakl

ls: cannot access ds: No such file or directory

[root@xuexi ~]# ls das && echo "hdakl"

ls: cannot access das: No such file or directory

1.3.3 ||

逻辑或。command1 || command2,只有当command1不正确执行才执行command2,command1正确执行则不会执行command2。||和&&都是短路符号,符号左右的命令之间具有逻辑关系。

[root@xuexi ~]# ls das || echo "hdakl" 

ls: cannot access das: No such file or directory

hdakl

[root@xuexi ~]# echo "hdakl" || ls ds   

hdakl

一般要联合使用&&和||的时候,基本上都会先逻辑与再逻辑或command1 && command2 || command3。因为在实际中,command2和command3应该都是想要执行的命令。如果command1正确执行,$?就等于0,执行command2,再看情况执行command3,如果command1错误执行,$?就不等于0,不执行command2,但是这时根据这个非0,判断了 || 右边的应该要执行。

SHELL脚本攻略(学习笔记)--1.3 多命令逻辑执行顺序