gpt4 book ai didi

arrays - Bash 脚本 - unix - 找不到命令

转载 作者:行者123 更新时间:2023-11-29 09:47:15 26 4
gpt4 key购买 nike

我是 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 就是您想要的。

关于arrays - Bash 脚本 - unix - 找不到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com