Linux中可以使用分号“;”、双and号“&&”和双竖线“||”来连接多个命令。
1.3.1 分号;
当多个命令想在写在一行上同时执行,可以在每个命令后使用分号“;”。多个命令之间没有任何逻辑关系,所有写出来的命令都会执行,即使某个命令有错误也不影响其他命令。
[[email protected] ~]# ls das;echo "hdakl"
ls: cannot access das: No such file or directory
hdakl
1.3.2 &&
逻辑与。command1 && command2,只有当command1正确执行才执行command2,如果command1不正确执行,则不执行command2。如何判断正确,bash内部会通过预定义变量“$?”来判断。
[[email protected] ~]# echo "hdakl" && ls ds
hdakl
ls: cannot access ds: No such file or directory
[[email protected] ~]# ls das && echo "hdakl"
ls: cannot access das: No such file or directory
1.3.3 ||
逻辑或。command1 || command2,只有当command1不正确执行才执行command2,command1正确执行则不会执行command2。||和&&都是短路符号,符号左右的命令之间具有逻辑关系。
[[email protected] ~]# ls das || echo "hdakl"
ls: cannot access das: No such file or directory
hdakl
[[email protected] ~]# echo "hdakl" || ls ds
hdakl
一般要联合使用&&和||的时候,基本上都会先逻辑与再逻辑或:command1 && command2 || command3。因为在实际中,command2和command3应该都是想要执行的命令。如果command1正确执行,$?就等于0,执行command2,再看情况执行command3,如果command1错误执行,$?就不等于0,不执行command2,但是这时根据这个非0,判断了 || 右边的应该要执行。