腳本入門
Bash 腳本是文字檔。第一行告訴系統用哪個直譯器,其餘每一行就是你原本會打進終端機的指令。
最小可執行範例
存成 hello.sh。
#!/usr/bin/env bash是 shebang,指定用 PATH 裡的 bash 來跑set -euo pipefail讓腳本在常見錯誤時及早停下來(見下文)
一定要寫 ./,因為目前目錄通常不在 PATH 裡,這是安全設計,不是故障。
也可以不給執行權、明確叫 bash:
三種執行方式差在哪
| 寫法 | 意義 |
|---|---|
./hello.sh |
開一個新程序跑腳本,要有執行權與 shebang |
bash hello.sh |
用 bash 讀這個檔,不需要 +x |
source hello.sh 或 . hello.sh |
在目前 shell 執行,改到的變數會留下來 |
設定 PATH、定義函式時才需要 source。一般自動化用前兩種。
set -euo pipefail 在做什麼
沒有這三行時,Bash 預設很寬鬆:中間指令失敗仍繼續往下跑,最後還回傳成功。入門腳本建議加上,少踩「其實失敗了卻以為成功」。
若某行失敗是預期內的,可以暫時關掉或寫成:
註解與除錯
-x 會把每一行展開後印出來,變數沒如你想的那樣時非常有用。
副檔名
.sh 只是給人看的。系統看的是 shebang 與執行權。習慣仍建議加上,搜尋比較方便。
總結
第一行 shebang,chmod u+x,用 ./檔名 執行。加上 set -euo pipefail 再開始寫邏輯。接下來是 變數與參數。