描述:
位置參數指的是shell腳本的命令行參數,同時也表示shell函數的額函數參數。
說明:
示例:
#!/bin/sh echo "number:$#" # 傳給腳本的參數個數 echo "scname:$0" # 腳本的名字 echo "first :$1" # 傳遞給該shell腳本的第一參數 echo "second:$2" # 傳遞給該shell腳本的第二個參數 echo "argume:$@" # 傳遞給腳本的所有的參數的列表 echo "show parm list:$*" # 以一個單字符串顯示所有向腳本傳遞的參數, 與位置不同,參數可以超過九個 echo "show process id:$$" # 腳本運行的當前ID號 echo "show precomm stat: $?" # 顯示最后命令的退出狀態,0表示正確,其它數字表示錯誤 # ./variable aa bb number:2 scname:./variable first:aa second:bb argume:aa bb show parm list:aa bb show process id:24544 show precomm stat:0
$@ 與 $* 的相同點如下:
1、直接輸出不保留空格
2、帶雙引號輸出會保留帶引號的空格
3、不帶雙引號循環遍歷的輸出結果一樣:每個字符串單獨輸出
不同點如下:
1、帶雙引號遍歷$*相當于帶雙引號輸出$*
2、帶雙引號遍歷$@分別輸出每個參數,帶雙引號的參數保留空格輸出
[root@localhost ~]# set 'apple pie' pears peaches [root@localhost ~]# for i in $* > do > echo $i > done apple pie pears peaches [root@localhost ~]# set 'apple pie' pears peaches [root@localhost ~]# for i in $@ > do > echo $i > done apple pie pears peaches [root@localhost ~]# set 'apple pie' pears peaches [root@localhost ~]# for i in "$*" > do > echo $i # 將所有參數變量視為一個 > done apple pie pears peaches [root@localhost ~]# set 'apple pie' pears peaches [root@localhost ~]# for i in "$@" > do > echo $i # 這里的單引號將兩個單詞合成一個 > done apple pie pears peaches
原創文章,作者:pingsky,如若轉載,請注明出處:http://www.www58058.com/36084
寫的較為簡單哦,變量分為本地變量,環境變量,全局變量,位置變量,特殊變量等,這些都需要自己去整理的哦