shell script 傳遞命令列的位置參數
在命令列傳遞的參數如下
script 參數1 參數2 參數3
位置參數符號說明:
參數 | 說明 |
---|---|
$0 | script本身的檔名 |
$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