据我所知,在命令后使用&是为了在后台运行它。
&用法示例:tar -czf file.tar.gz dirname &
但是&&呢?(例子)
据我所知,在命令后使用&是为了在后台运行它。
&用法示例:tar -czf file.tar.gz dirname &
但是&&呢?(例子)
当前回答
####################### && 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,这意味着两个条件都为真。
其他回答
&&允许您根据前一个命令是否成功完成来执行某些操作—这就是为什么您倾向于将其链接为do_something && do_something_else_that_dependded_on_something的原因。
如果第一个语句成功结束,它将执行第二个语句。类似if语句:
if (1 == 1 && 2 == 2)
echo "test;"
它首先尝试是否1==1,如果是真的,它检查是否2==2
请看例子:
mkdir test && echo "Something" > test/file
Shell将尝试创建目录test,然后,只有当它成功时,才会尝试在其中创建文件。
因此,如果其中一个步骤失败了,您可能会中断一系列步骤。
####################### && 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,这意味着两个条件都为真。
&&将命令串在一起。后续命令只有在前一个命令成功时才执行。
类似地,如果前面的命令执行失败,||将允许后续的命令执行。
参见Bash Shell编程。