&&
逻辑与:可用于shell脚本逻辑判断 和 命令编排(前面的命令执行成功,&& 后面那一个命令才执行)
检测当前目录是否存在 11.txt 这个文件,如果存在则打印 success
[[ -e 11.txt ]] && echo "success"
||
逻辑或:同样可以用于shell脚本逻辑判断 和 命令编排(前面的命令执行失败[未返回0,0代表命令正确执行] ,|| 后面那一个的命令才执行)
检测当前目录是否存在 11.txt 这个文件,如果不存在则打印 fail
[[ -e 11.txt ]] || echo "success"
结合二者
如果存在则打印 success,否则打印fail
[[ -e 11.txt ]] && echo "success" || echo "fail"
注意:每一个 && 和 || 只关注紧挨着的两个命令,只和前面的一个命令执行结果相关
深化记忆
-
[[ -e 11.txt ]] && echo "success" || echo "fail" && echo "done"
会打印
fail
done
因为 第一个命令执行失败,导致 && success未执行,
第三个命令是 || 控制的,因此 fail会执行
fail执行成功,第四个命令是 && 控制 ,因此 done会执行 -
[[ -e 11.txt ]] || echo "fail" && echo "success" && echo "done"
会打印
fail
success
done
原来同上,每个运算符只关注前面的那个命令的结果