1. 程式人生 > >Shell的特殊位置/狀態/擴充套件變數

Shell的特殊位置/狀態/擴充套件變數

1 [[email protected] tmp]# set -- "This is" Age of loss. #“--”表示清除所有的引數變數,重新設定後面的引數變數。 2 [[email protected] tmp]#echo $# #輸出引數的個數。 3 3                #共三個引數。 4 [[email protected] tmp]# echo $1 #列印第一個引數值。 5 This is 6 [[email protected] tmp]# echo $2 #列印第二個引數值。 7
Age 8 [[email protected] tmp]# echo $3 #列印第三個引數值。 9 of 10 [[email protected] tmp]# echo $4 #列印第四個引數值。 11 loss. 12 #測試$*和[email protected],注意,此時不帶雙引號: 13 [[email protected] tmp]# echo $* #列印$*。 14 This is Age of loss. 15 [[email protected] tmp]# echo [email protected]
#列印[email protected]16 This is Age of loss. 17 [[email protected] tmp]# for i in $*; do echo $i; done #使用for迴圈輸出$*測試。 18 This          #($*)不加雙引號,因此會輸出所有引數,然後第一個引數"This is"也拆開輸出了。 19 is 20 Age 21 of 22 loss 23 [[email protected] tmp]# for i in [email protected]
; do echo $i; done #使用for迴圈輸出[email protected]測試。 24 This #([email protected])不加雙引號,因此會輸出所有引數,然後第一個引數"This is"也拆開輸出了。 25 is 26 Age 27 of 28 loss 29 #測試"$*"和"[email protected]",注意,此時帶有雙引號: 30 [[email protected] tmp]# echo "$*" 31 This is Age of loss. 32 [[email protected] tmp]# echo "[email protected]" 33 This is Age of loss. 34 [[email protected] tmp]# for i in "$*"; do echo $i; done 35 This is Age of loss. #在有雙引號的情況下"$*",引數裡引號中的內容當作一個引數輸出了! 36 [[email protected] tmp]# for i in "[email protected]"; do echo $i; done 37 This is #在有雙引號的情況下,每個引數均以獨立的內容輸出,且有雙引號算一個引數。 38 Age 39 of 40 loss 41 #這才真正符合我們傳入的引數需求,set -- "This is" Age of loss.