在 bash 脚本中访问超出第 9 个的命令行参数



我正在尝试在 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

但是对于可变$new(10 美元),答案应该是car但我得到-yr0

知道为什么吗?

new=$10给你$1(即'yr')附加0。你需要一些牙套:${10}

这是修复:

#!/bin/bash
an=$2  mn=$4  dy=$6  der=$8  new=${10}  sec="${12} ${13}"
echo $an $mn  $dy   $der  $new  $sec 
  1. 使用 ${10} 代替 $10,即附加 0 的"$1"
  2. 秒="..."而不是使用括号,除非您打算使用数组

相关内容

  • 没有找到相关文章

最新更新