2012-10-17 93 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}