【发布时间】:2015-06-23 20:42:36
【问题描述】:
我运行 GNU bash,版本 4.3.11(1)-release (x86_64-pc-linux-gnu)。从 cmd 行调用的一个非常简单的脚本,带有至少 3 个任意参数:
#!/bin/bash
n_arg=$#
arr=("$@")
AA=${arr[0]} # CHANGED FROM AA=S{arr[0]}
BB=${arr[1]} # CHANGED FROM BB=S{arr[1]}
for (( i = 2; i < "$n_arg"; i++ )); do
printf "%d %s %s %s\n" $i $AA $BB ${arr[i]} # <- line 9
# printf "%d %s %s %s\n" $i "$AA" "$BB" ${arr[i]} # ALSO TRIED
done
exit 0
产生如下所示的错误:
$ script.sh 10 2 13 443
./script.sh: line 9: printf: S{arr[0]}: invalid number
./script.sh: line 9: printf: S{arr[1]}: invalid number
2 0 0 13
./script.sh: line 9: printf: S{arr[0]}: invalid number
./script.sh: line 9: printf: S{arr[1]}: invalid number
3 0 0 443
我可以看到分别传递给 AA 和 BB 的第一个和第二个数组元素的值似乎构成了一个我不太了解的 prbm。我确实尝试过: AA="S{arr[0]}" 当我在交互模式下输入代码时,一切都很顺利。
【问题讨论】:
-
S?你的意思是$?如,AA=${arr[0]} -
听起来你需要眼镜或更好的字体。 =)
-
ProggyFont 规则。