据我所知,在命令后使用&是为了在后台运行它。

&用法示例:tar -czf file.tar.gz dirname &

但是&&呢?(例子)


当前回答

&&允许您根据前一个命令是否成功完成来执行某些操作—这就是为什么您倾向于将其链接为do_something && do_something_else_that_dependded_on_something的原因。

其他回答

Command_1 && command_2:当Command_1执行成功后,才执行command_2。

Command_1 || command_2:在Command_1执行失败时,只执行command_2。

感觉类似于在主流编程语言中执行'if'条件,比如if (condition_1 && condition_2){…}如果condition_1为false,则省略condition_2,并且if (condition_1 || condition_2){…如果condition_1为真,}condition_2将被省略。 看,这和你编写代码时使用的技巧是一样的:)

&&允许您根据前一个命令是否成功完成来执行某些操作—这就是为什么您倾向于将其链接为do_something && do_something_else_that_dependded_on_something的原因。

####################### && or (Logical AND) ######################
first_command="1"
two_command="2"

if [[ ($first_command == 1) && ($two_command == 2)]];then
 echo "Equal"
fi

当程序检查if命令时,程序创建一个称为退出码的数字,如果两个条件都为真,退出码为零(0),否则,退出码为正数。仅当输出码为0(0)时显示Equal,这意味着两个条件都为真。

此外,你还有||这是逻辑上的或,还有;这只是一个分隔符,它不关心之前的命令发生了什么。

$ false || echo "Oops, fail"
Oops, fail

$ true || echo "Will not be printed"
$  

$ true && echo "Things went well"
Things went well

$ false && echo "Will not be printed"
$

$ false ; echo "This will always run"
This will always run

一些详细信息可以在Bash手册中的命令列表中找到。

如果第一个语句成功结束,它将执行第二个语句。类似if语句:

 if (1 == 1 && 2 == 2)
  echo "test;"

它首先尝试是否1==1,如果是真的,它检查是否2==2