2012-10-17 132 views
2

我想讀的bash命令行參數,但我有問題,在第10列 讀到這裏是我的示例腳本:的命令行參數

#------------------------------------------------------- 
#!/bin/bash 
an=$2 mn=$4 dy=$6 der=$8 new=$10 sec=(${12} ${13}) 
echo $an $mn $dy $der $new $sec 
#-------------------------------------------------------- 

我已運行上面的腳本「 test.sh」爲

./test.sh -yr cat -mn Jan -dy tuesday -der tt -new car -sec 001 001 

的輸出是:

cat Jan tuesday tt -yr0 001 

但對於變量$新(10美元)的答案應該是car但我得到-yr0

任何想法爲什麼?

yacob

+2

你應該考慮使用getopt(s) –

回答

3

這裏是修復:

#!/bin/bash 
an=$2 mn=$4 dy=$6 der=$8 new=${10} sec="${12} ${13}" 
echo $an $mn $dy $der $new $sec 
  1. 的相反$ 10,這是 「$ 1」 與0所附,使用$ {10}
  2. 秒=」 .. 。「而不是使用圓括號,除非你打算使用數組
4

new=$10是給你$10附加(即 '年')。你需要一些括號:${10}