在Linux中&&和;链接操作符
逻辑与运算符(&&)
第二个命令只有在第一个命令成功执行时才会执行,也就是说,它的退出状态为零。该操作符可用于检查第一个命令是否已成功执行。这是命令行中使用最多的命令之一。
语法:
command1 && command2
如果 command1
已成功执行,则 command2
将执行。这个操作符允许检查 command1
的退出状态。
分号操作符(;)
它用于一次性执行多个命令。使用这个操作符可以将几个命令串联起来。接下去的命令总是在前面的命令执行完毕后执行,与前面的命令的退出状态无关。这些命令总是按顺序执行。由分号操作符分隔的命令是按顺序执行的,shell会依次等待每个命令的终止。返回状态是最后执行的命令的退出状态。
语法:
command1 ; command2
第二条命令的执行与第一条命令的退出状态无关。如果第一条命令没有被成功执行,那么第二条命令也会被执行。
AND(&&)和SEMI-COLON(;)运算符之间的区别 –
&&(逻辑和)运算符 | ;(分号)运算符 |
---|---|
第二个命令的执行取决于第一个命令的执行 | 第二个命令的执行与第一个命令的执行状态无关。 |
如果前一条命令的退出状态为非零,后一条命令将不会被执行。 | 甚至 如果第一条命令的退出状态为非零,第二条命令将被执行。 |
允许条件性执行 | 不允许条件性执行。 |
Bash对逻辑AND进行了短路评估。 | 不需要短路评估。 |
逻辑与有较高的优先权。 | 它的优先级比逻辑AND低。 |