shell script 傳遞命令列的位置參數

在命令列傳遞的參數如下

script 參數1 參數2 參數3

位置參數符號說明:

參數說明
$0script本身的檔名
$1第1個參數
$2第2個參數
$3第3個參數
...依此類推
${10}第10個參數
${n}第n個參數
${#}參數的個數
$@所有以空白隔開的參數
$*所有參數所組成的字串

實例:
檔名為 WIJ.sh
程式碼如下:

#!/bin/bash
echo $0
echo $1
echo $2
echo $#
echo $@
echo $*

使用帶參數的方式執行

sh WIJ.sh apple banana

顯示結果:

WIJ.sh
apple
banana
2
apple banana
apple banana

其中$#經常用來判斷使用者提供的參數是否足夠
範例:

#!/bin/bsah
if [ $# -ne 2 ]; then
    echo "使用法: sh $0 參數1 參數2"
    exit 1
fi

執行範例:

sh WIJ.sh apple

顯示結果

king@ubuntu:~/Desktop$ sh WIJ.sh apple 
使用法: sh WIJ.sh 參數1 參數2
Last modification:June 5th, 2018 at 07:33 pm