我們可以在執行 Shell 腳本時,向腳本傳遞參數,腳本内擷取參數的格式為:$n。n 代表一個數字,1 為執行腳本的第一個參數,2 為執行腳本的第二個參數,以此類推……
以下執行個體我們向腳本傳遞三個參數,并分别輸出,其中 $0 為執行的檔案名:
為腳本設定可執行權限,并執行腳本,輸出結果如下所示:
另外,還有幾個特殊字元用來處理參數:
參數處理
說明
$#
傳遞到腳本的參數個數
$*
以一個單字元串顯示所有向腳本傳遞的參數。
如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。
$$
腳本運作的目前程序ID号
$!
背景運作的最後一個程序的ID号
$@
與$*相同,但是使用時加引号,并在引号中傳回每個參數。
如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。
$-
顯示Shell使用的目前選項,與set指令功能相同。
$?
顯示最後指令的退出狀态。0表示沒有錯誤,其他任何值表明有錯誤。
執行腳本,輸出結果如下所示:
$* 與 $@ 差別:
相同點:都是引用所有參數。
不同點:隻有在雙引号中展現出來。假設在腳本運作時寫了三個參數 1、2、3,,則 " * " 等價于 "1 2 3"(傳遞了一個參數),而 "@" 等價于 "1" "2" "3"(傳遞了三個參數)。
本文轉自 獨孤環宇 51CTO部落格,原文連結:http://blog.51cto.com/snowtiger/1941292