代码
SourceFolder[0]=""
SourceFolder[1]="inbound2"
SourceFolder[2]="inbound3"
for i in "${!SourceFolder[@]}"
do
if [ -z "${SourceFolder[$i]}"]; then
${SourceFolder[$i]} = "TEST"
fi
done
${SourceFolder[$i]} = "TEST"
- 无效
它说
=:找不到命令
如何更改数组中当前循环索引的值?
答案 0 :(得分:4)
由于第一个空格=
未被解释为赋值。有full explanation on So。
Btw ${SourceFolder[$i]}
评估数组元素,这不是你想要做的。例如,对于第一个,它是空字符串。
替换为SourceFolder[$i]=
答案 1 :(得分:0)
您必须更改数组中的索引号:
ARRAYNAME[indexnumber]=value
好的,您的数组是:
array=(one two three)
您可以在脚本中添加count进行初始化,并为数组indexnumber更改元素,例如:
#!/bin/bash
count=0
array=(one two three)
for i in ${array[@]}
do
echo "$i"
array[$count]="$i-indexnumber-is-$count"
count=$((count + 1))
echo $count
done
echo ${array[*]}
结果:
bash test-arr.sh
one
1
two
2
three
3
one-indexnumber-is-0 two-indexnumber-is-1 three-indexnumber-is-2