Bash Built in Variables

shell script 對我來說是個「目的性」很強的語言,雖然每天都要使用,但直接在指令列使用和寫成 xxx.sh 總感覺不是同一件事(而且我其實用的是 zsh)。由於缺乏系統性的學習,儘管日常使用沒有問題,但要寫成檔案時還是感覺生疏,其實我連 if 判斷怎麼下都不是非常肯定(一點都不誇張,if condition 一個方括號和兩個方括號的差別我也是最近才知道)。

因此,我覺得有必要稍微補強這方面的知識,作點筆記應該會有幫助。這篇用來記錄 bash 內建變數,在寫 shell script 時,如果可以善用內建的變數,指令看起來會更簡潔易讀。

指令列表

內建變數解釋用途
$#參數數量
$*所有參數(合起來當成「一個」字串,"$1 $2 ..."
$@所有參數(每個參數當作獨立的字串,"$1" "$2" ...
$_上一個指令的最後一個參數
$-傳遞給指令的 flag
$?最後執行指令的回傳值(exit code)檢查上一個指令或函式是否正確
$$指令自身的 process ID常用來創造一個臨時的檔名
$!最後一個背景執行指令的 process ID
$0指令名稱(指令路徑)
$n第 n 個參數(index 從 1 開始)

參考資料

最後更新時間: