Linux中的&&连接符
和其它语言类似,在Shell中,&&
是一个逻辑运算符,表示逻辑AND,用于连接多个条件表达式
不同的是,在Linux系统中,&&
不仅可以连接条件表达式,而且还能连接命令、变量等,使得代码更简洁,程序控制逻辑更灵活,错误处理更高效
1、&&
连接符
&&
连接符的使用格式如下:
条件1/变量1/命令1 && 条件2/变量2/命令2 && ...
&&
连接符的执行逻辑:
- 从左到右依次执行,并对是否执行成功进行逻辑AND判断
- 如果前面的命令执行成功(返回状态码0),则继续执行下一个命令
- 如果前面的命令执行失败(返回状态码非0),则后面的命令不会执行
也就是说,只有当前一条命令执行成功后,才会执行下一条命令
例如连接多个命令:
mkdir /tmp/test && cd /tmp/test && echo "test"
当mkdir
失败(例如权限不足),则后面的cd
和echo
都不会执行
例如连接变量和命令:
file="/tmp/test/x.xlsx" && key="`</tmp/conf/key.txt`" && java -jar test.jar $file $key
如果file
存在并且key
可以读取到内容,则执行后面的命令
2、||
连接符
||
连接符则相反,前面的命令执行成功,则后面的命令不会执行,只有当前一条命令执行失败时,才会执行下一条命令
&&
与||
结合使用,可以实现更灵活的逻辑,以下是一个示例:
mkdir /tmp/test && echo "Succeed" || echo "Failed"
如果mkdir
成功,则输出Succeed,如果mkdir
失败,则输出Failed