天天看點

linux的shell變量之傳參linux中shell變量$#,$@,$0,$1,$2的含義解釋

摘抄自:ABS_GUIDE

linux中shell變量$#,$@,$0,$1,$2的含義解釋: 

變量說明: 

$$ 

Shell本身的PID(ProcessID) 

$! 

Shell最後運作的背景Process的PID 

$? 

最後運作的指令的結束代碼(傳回值) 

$- 

使用Set指令設定的Flag一覽 

$* 

所有參數清單。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。 

$@ 

所有參數清單。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。 

$# 

添加到Shell的參數個數 

$0 

Shell本身的檔案名 

$1~$n 

添加到Shell的各參數值。$1是第1參數、$2是第2參數…。 

示例:

<a href="https://s1.51cto.com/wyfs02/M01/94/DA/wKioL1kPEuDgc54uAABBfiTMp-4089.png-wh_500x0-wm_3-wmp_4-s_2734718160.png" target="_blank"></a>

<a href="https://s1.51cto.com/wyfs02/M00/94/DA/wKioL1kPEuDCW0RmAAA1UFYw_Us417.png-wh_500x0-wm_3-wmp_4-s_2901113361.png" target="_blank"></a>

其中s@與s*差別:

$* 與 $@ 差別:

相同點:都是引用所有參數。

不同點:隻有在雙引号中展現出來。假設在腳本運作時寫了三個參數 1、2、3,,則 " * " 等價于 "1 2 3"(傳遞了一個參數),而 "@" 等價于 "1" "2" "3"(傳遞了三個參數)。

實操:

<a href="https://s4.51cto.com/wyfs02/M01/94/DB/wKioL1kPE1CSyLlJAAApMRCJ9jA554.png-wh_500x0-wm_3-wmp_4-s_2714088596.png" target="_blank"></a>

<a href="https://s4.51cto.com/wyfs02/M02/94/DB/wKiom1kPE1DTqKtuAAAe2zqA47E963.png-wh_500x0-wm_3-wmp_4-s_438569513.png" target="_blank"></a>

本文轉自飛奔的小GUI部落格51CTO部落格,原文連結http://blog.51cto.com/9237101/1922945如需轉載請自行聯系原作者

ziwenzhou

繼續閱讀