复合命令
命令组合的区别
| 符号 | 名称 | 含义 |
|---|---|---|
&& | AND | 前一个成功,才执行后一个 |
|| | OR | 前一个失败,才执行后一个 |
; | 顺序 | 无条件依次执行 |
command1 && command2
command1成功(返回0)→ 执行command2command1失败(返回非0)→ 跳过command2
bash
mkdir /tmp/test && cd /tmp/test
# 目录创建成功才进入command3 || command4
command3失败(返回非0)→ 执行command4command3成功(返回0)→ 跳过command4
bash
cd /tmp/test || mkdir /tmp/test
# 如果进入失败,就创建目录command5 ; command6
- 无条件依次执行两者
bash
cd /tmp/test ; ls -la
# 不管 cd 是否成功,ls 都会执行组合使用
bash
# 如果成功做A,失败做B
command1 && command2 || command3
# 等价于
if command1; then command2; else command3; fi
# 链式
command1 && command2 && command3
command1 || command2 || command3退出码
&&和||会保留最后一个执行的命令的退出码;保留最后一个命令的退出码