Shell的特殊位置/狀態/擴充套件變數
阿新 • • 發佈:2018-12-17
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.