天天看點

shell--3、Shell 傳遞參數

我們可以在執行 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