Shell 中可用三種運算符控制多命令執行流程,滿足不同業務邏輯需求。
; —— 無條件順序執行mkdir test; mkdir test; rmdir test
test 目錄不存在(第三條刪除生效)。&& —— 短路與:全成功才繼續mkdir test && mkdir test && rmdir test
mkdir test 失敗(目錄已存在),立即停止,不執行 rmdir。test 目錄保留。|| —— 短路或:遇成功即停mkdir test || mkdir test || rmdir test
# 只有目錄不存在時才建立,且建立失敗則報警
[ -d /data ] || mkdir -p /data || { echo "mkdir failed" >&2; exit 1; }
# 部署腳本:拉取代碼 && 安裝依賴 && 重啟服務,任一步失敗即中止
git pull && npm ci && pm2 restart app
| 運算符 | 邏輯 | 繼續條件 | 典型場景 |
|---|---|---|---|
; | 順序 | 無條件 | 獨立操作批量執行 |
&& | AND | 前一條成功 | 部署流水線、前置檢查 |
|| | OR | 前一條失敗 | 容錯備選、預設值賦值 |