命令链接
使用 &&、||、; 等操作符将多条命令链接起来,实现条件执行和顺序控制。
命令链接
四种链接方式
# 顺序执行:无论成功失败都继续
command1 ; command2
# 与(AND):前一条成功才执行后一条
command1 && command2
# 或(OR):前一条失败才执行后一条
command1 || command2
# 后台执行:不等待,立即返回
command1 &
实际例子
# 创建目录并进入(目录创建成功才进入)
mkdir project && cd project
# 编译成功后运行
go build -o app . && ./app
# 尝试连接服务器,失败则报错
ping -c 1 google.com || echo "网络不通!"
# 组合使用
mkdir build && cd build && cmake .. && make
# 备份:成功则记录,失败则告警
tar czf backup.tar.gz /data \
&& echo "备份成功" >> /var/log/backup.log \
|| echo "备份失败!" | mail -s "告警" admin@example.com
命令分组
# 用 () 在子 shell 中执行
(cd /tmp && ls) # 切换目录不影响当前目录
# 用 {} 在当前 shell 中执行
{ echo "开始"; sleep 2; echo "结束"; }
三元表达式风格
# 如果文件存在则显示,否则创建
[ -f config.yaml ] && echo "存在" || touch config.yaml
&&是最常用的链接符——保证每一步都成功后才继续。