在LinuxBash中,双符号(&;)和分号(;)之间有什么区别?

在LinuxBash中,双符号(&;)和分号(;)之间有什么区别?,linux,bash,Linux,Bash,在Linux中,符号和分号有什么区别 比如说, $ command1 && command2 vs &&运算符是一个布尔AND运算符:如果左侧返回非零退出状态,则运算符返回该状态,不计算右侧(短路),否则它计算右侧并返回其退出状态。这通常用于确保只有在command1成功运行时才运行command2 令牌只是分隔命令,因此无论第一个命令是否成功,它都将运行第二个命令。command1&&command2 command1和&command2执行command2如果(且仅当)co

在Linux中,符号和分号有什么区别

比如说,

$ 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