$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
filepath=$0
echo $filepath # ./test.sh
使用basename命令返回不包含指令碼的檔名
./test.sh
filename=$(basename $0)
echo $filename # test.sh
$# 讀取引數的個數
./test.sh 2 3
count=$#
echo $count # 2
$ 讀取最後乙個引數
./test.sh 2 3
echo $
$@ 或者 $* 可以獲取所有的引數
./test.sh 2 3 4
for val in $@
do echo $val
done
./test.sh 2 3
if [ -n "$2" ]
then
echo "$2"
fi
shift 預設每次將引數向左移動乙個位置,第2位變為第1位
./test.sh 2 3 4
while [ -n "$1" ]
do echo "$1"
shift
done
shift 2 每次將引數向左移動2個位置 shell指令碼程式設計 處理命令列引數
1 讀取引數 bash shell使用位置引數的特殊變數記錄命令列引數,0是程式名,1 9依次為輸入引數 如果指令碼需要多餘9個變數,需要將變數數字加花括號,如 命令列輸入的引數需要以空格分隔,當空格作為引數的一部分時可以使用引號分開 在指令碼中對命令列引數進行處理時需要對引數進行有效性判斷,如 1...
Shell的命令列引數
當你執行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 其中...
SHELL 命令列引數簡介
我們對於普通指令碼語言諸如perl python等,寫乙個指令碼程式,包裝命令列引數時,一般都是用getopt之類的 c語言也類似。那麼,對於乙個shell指令碼,它本身的命令引數是什麼樣呢?首先,shell指令碼程式設計和python等指令碼程式設計一樣可以使用引數 其次,shell引數分為位置引...