我正在尝试在 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
- 使用 ${10} 代替 $10,即附加 0 的"$1"
- 秒="..."而不是使用括号,除非您打算使用数组