在bash脚本的命令行参数(Command line arguments in bash scrip

2019-09-24 05:19发布

我想读在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

Answer 1:

这里是修复:

#!/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. 秒=“...”,而不是使用括号,除非你想用数组


Answer 2:

new=$10是给你$1与所附(即'岁') 0 。 你需要一些括号: ${10}



文章来源: Command line arguments in bash script
标签: bash stdin