逻辑与运算符(&&)

第二个命令只有在第一个命令成功执行时才会执行,也就是说,它的退出状态为零。该操作符可用于检查第一个命令是否已成功执行。这是命令行中使用最多的命令之一。

语法:

command1 && command2

如果command1已成功执行,则command2将执行。这个操作符允许检查command1的退出状态。

分号操作符(;)

它用于一次性执行多个命令。使用这个操作符可以将几个命令串联起来。接下去的命令总是在前面的命令执行完毕后执行,与前面的命令的退出状态无关。这些命令总是按顺序执行。由分号操作符分隔的命令是按顺序执行的,shell会依次等待每个命令的终止。返回状态是最后执行的命令的退出状态。

语法:

command1 ; command2

第二条命令的执行与第一条命令的退出状态无关。如果第一条命令没有被成功执行,那么第二条命令也会被执行。

AND(&&)和SEMI-COLON(;)运算符之间的区别 –

&&(逻辑和)运算符 ;(分号)运算符
第二个命令的执行取决于第一个命令的执行 第二个命令的执行与第一个命令的执行状态无关。
如果前一条命令的退出状态为非零,后一条命令将不会被执行。 甚至 如果第一条命令的退出状态为非零,第二条命令将被执行。
允许条件性执行 不允许条件性执行。
Bash对逻辑AND进行了短路评估。 不需要短路评估。
逻辑与有较高的优先权。 它的优先级比逻辑AND低。