我是bash脚本的新手,我想知道为什么我会收到上述消息。我尝试使用来自for循环的算术值,然后我想打印该数组。谁能帮我?
先感谢您!!
#!/bin/bash
declare -a SCORES
for j in `seq 0 5`;
do
SCORES$j="$(sh myscript.sh $DSLAM $j | grep "" -c )"
done
for k in "${SCORES[@]}"
do
echo "message $'\t' $SCORES$k"
done
echo ${#SCORES}
=======
输出
abcd.sh: line 16: SCORES0=3: command not found
abcd.sh: line 16: SCORES1=135: command not found
abcd.sh: line 16: SCORES2=826: command not found
abcd.sh: line 16: SCORES3=107: command not found
abcd.sh: line 16: SCORES4=3: command not found
abcd.sh: line 16: SCORES5=3: command not found
0
您不能为变量分配名称,该名称是在运行时生成的。至少不是您尝试的方式。
您有以下选择:
declare "SCORES$j=$(sh myscript.sh $DSLAM $j | grep '' -c )" # creates new variables like SCORES1, SCORES2 etc.
eval "SCORES$j=$(sh myscript.sh $DSLAM $j | grep '' -c )" #Definitely not preferred.
SCORES[$j]="$(sh myscript.sh $DSLAM $j | grep '' -c )" #uses array you have created.
选项3最有可能是您想要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句