在LinuxBash中,双符号(&;)和分号(;)之间有什么区别?
在Linux中,符号和分号有什么区别 比如说,在LinuxBash中,双符号(&;)和分号(;)之间有什么区别?,linux,bash,Linux,Bash,在Linux中,符号和分号有什么区别 比如说, $ command1 && command2 vs &&运算符是一个布尔AND运算符:如果左侧返回非零退出状态,则运算符返回该状态,不计算右侧(短路),否则它计算右侧并返回其退出状态。这通常用于确保只有在command1成功运行时才运行command2 令牌只是分隔命令,因此无论第一个命令是否成功,它都将运行第二个命令。command1&&command2 command1和&command2执行command2如果(且仅当)co
$ command1 && command2
vs
&&
运算符是一个布尔AND运算符:如果左侧返回非零退出状态,则运算符返回该状态,不计算右侧(短路),否则它计算右侧并返回其退出状态。这通常用于确保只有在command1
成功运行时才运行command2
代码>令牌只是分隔命令,因此无论第一个命令是否成功,它都将运行第二个命令。command1&&command2
command1和&command2
执行command2
如果(且仅当)command1
执行成功。在Unix术语中,这意味着退出代码/返回代码等于零
命令1;命令2
command1;command2
在执行command1
之后依次执行command2
。命令是否成功并不重要。前者是一个简单的逻辑,
使用短路评估,后者只是划分了两个命令
实际情况是,当第一个程序返回一个非零的退出代码时,整个和
被计算为FALSE
,第二个命令将不会执行。后者只是按顺序执行它们。我在这里回答:关于离题,上次我检查时,bash仍然是一种编程语言,但我以前错了,可能是干果糖。它是,如果你问了一个关于某个特定行为的问题,或者问了一个做某件事的正确方法,那么这个问题肯定会在这个话题上。这属于“关于语言语法的问题”这一更灰色的类别,就我而言,这不是一个“编程”问题。bash在某些方面是枯燥的,在某些方面是甜蜜的。在一天结束时,它是相当令人愉快和易于消化的。然而,它不能轻易地从婴儿身上偷走。在bash中,双和号&
与单和号&
不同吗?@CharlieParker&
会导致命令在后台运行,所以是的。“在后台运行此命令”与“仅当另一个命令成功时才运行此下一个命令”非常不同。command2将仅运行command1,返回零退出状态,这意味着它已成功完成..Does代码>仍在等待第一个命令完成?@rfii是,但它执行第二个命令,而不考虑第一个命令是否成功<代码>a;b
表示“运行a
然后运行b
”a和&b
表示“运行a
,然后仅在a
成功时运行b
。”
$ command1; command2