摘抄自: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