Linux Bash中的&符号和分号有什么区别?
例如,
$ command1 && command2
Run Code Online (Sandbox Code Playgroud)
VS
$ command1; command2
Run Code Online (Sandbox Code Playgroud)
cdh*_*wie 122
该&&运营商是一个布尔AND运算符:如果左侧返回一个非零退出状态,操作者返回的状态和不评估右侧(它出现短路),否则计算右侧并返回其退出状态.这通常用于确保command2仅command1在成功运行时运行.
所述;令牌只是分开的命令,所以它会运行第二个命令不管第一个是否成功.
jim*_*-cl 30
command1 && command2执行command2当(且仅当)command1执行成功结束.在Unix行话中,这意味着退出代码/返回代码等于零.
command1; command2在执行command2之后command1,顺序执行.命令是否成功无关紧要.
前者是AND使用短路评估的简单逻辑,后者只是界定两个命令。
实际发生的情况是,当第一个程序返回一个非零退出代码时,将对整个AND程序求值,FALSE并且第二个命令将不会执行。后者只是简单地按顺序执行它们。
| 归档时间: |
|
| 查看次数: |
41817 次 |
| 最近记录: |