Shell的命令列引數

2021-07-13 17:57:45 字數 890 閱讀 3739

當你執行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...