我們知道命令可以帶參數(shù),同樣腳本文件運行時也可以帶有參數(shù)。
1、腳本內(nèi)獲取參數(shù)
腳本內(nèi)獲取參數(shù)的格式為:$n
n代表一個數(shù)字,1 為執(zhí)行腳本的第一個參數(shù),2 為執(zhí)行腳本的第二個參數(shù),以此類推。
舉例,仍然在myshell.sh中進行舉例,在該腳本文件中加入?yún)?shù)打印代碼echo $1,即將傳入的第一個參數(shù)打印出來:
保存后執(zhí)行腳本,并傳入?yún)?shù)par:
傳入兩個參數(shù)par1和par2,并打印出來:
保存后執(zhí)行腳本,并傳入?yún)?shù)par1和par2:
2、獲取傳遞參數(shù)
獲取傳遞參數(shù)的個數(shù)使用$#。
在腳本中加入echo $#,打印出輸入?yún)?shù)的個數(shù):
保存后執(zhí)行腳本,并傳入?yún)?shù)par1和par2:
3、傳入的參數(shù)打包為一個字符串
將傳入的參數(shù)打包為一個字符串使用$*。
在腳本中加入echo $*,打印出輸入的所有參數(shù):
可以看到$*是將所有的輸入?yún)?shù)組裝成為了字符串。
4、傳入的參數(shù)分別打包為一個字符串
將傳入的參數(shù)分別打包為字符串使用$@
我們先演示一下,在腳本中加入echo $@:
輸入三個參數(shù)執(zhí)行:
可以看到,echo $@打印出來的結果跟echo $*一樣,但是其實,echo $*是將三個參數(shù)打包成一個字符串打印出來的,而echo $@是將三個參數(shù),分別打包為三個字符串打印出來的。