在Shell腳本中,可以用$n的方式獲取第n個參數,例如,一個名為paramtest的腳本:
#!/bin/bash
echo $1 $2
執行./paramtest a b 的結果是打印出第1個和第2個參數:
a b
但是,若腳本需要10個以上的參數,直接寫數字會有問題。例如,腳本為:
#!/bin/bash
echo $1 $2 $3 $4 $6 $7 $8 $9 $10
執行./paramtest a b c d e f g h i j,結果如下,第10個參數是不對的:
a b c d e f g h i a0
顯然$10被解釋成了$1+0。
解決方法很簡單,第10個參數加花括號即可:
#!/bin/bash
echo $1 $2 $3 $4 $6 $7 $8 $9 ${10}
再次執行./paramtest a b c d e f g h i j,結果正確:
a b c d e f g h i j