當你執行shell指令碼時,如
./myshell.sh a b c d e f
其中,後部分的a b c d e f 是傳入shell指令碼myshell.sh的引數 。
在shell指令碼裡,我們可以通過這樣獲得傳入的引數
echo first arg is $1
echo tenth arg is $
其中,
$1表示第1個引數,$表示第10個引數。
當從第10個引數開始,就要使用$來表示的,即要使用花括號。
shell有特殊的「變數」提供了對傳遞的引數的總數的訪問,以及一次對所有引數的訪問:
$#
提供傳遞到shell指令碼或函式的引數總數。當你是為了處理選項和引數而建立迴圈時,它會很用,如:
while [ $# != 0 ]
do case $1 in #處理第乙個引數
...esac
shift #移開第乙個引數
done
$*, $@
一次表示所有的命令列引數,這兩個引數可用來把命令列引數傳遞給指令碼或函式所執行的程式。
"$*"
將所有命令列引數視為單個字串,贊同於"$1 $2 ... "。
"$@"
將所有命令列引數視為單獨的個體,也就是單獨字串,贊同於"$1" "$2" ....。這是將引數傳遞給其他程式的最侍方式,因為它會保留所有內嵌在每個引數裡的任何空白。 SHELL 命令列引數簡介
我們對於普通指令碼語言諸如perl python等,寫乙個指令碼程式,包裝命令列引數時,一般都是用getopt之類的 c語言也類似。那麼,對於乙個shell指令碼,它本身的命令引數是什麼樣呢?首先,shell指令碼程式設計和python等指令碼程式設計一樣可以使用引數 其次,shell引數分為位置引...
SHELL 命令列引數簡介
我們對於普通指令碼語言諸如perl python等,寫乙個指令碼程式,包裝命令列引數時,一般都是用getopt之類的 c語言也類似。那麼,對於乙個shell指令碼,它本身的命令引數是什麼樣呢?首先,shell指令碼程式設計和python等指令碼程式設計一樣可以使用引數 其次,shell引數分為位置引...
shell程式設計 命令列引數
1 獲取第1個引數 2 獲取第2個引數 獲取第10個引數 test.sh 2 3 test.sh 指令碼內容 var1 1 2 var2 2 3 var3 var1 var2 echo var3 6獲取超過第9個引數時要用花括號括起來,0 獲取當前檔案的指令碼名稱包括路徑 test.sh filep...