我正在尝试创建一种初始化一组变量的简单方法。
我们的想法是创建一个数组并将变量添加到数组中,然后遍历它们并初始化它们。
问题在于我似乎无法弄清楚如何更改数组中变量的值。我知道如何将FruitsArray[3]
更改为等于其他内容,但如果变量$Apple
在数组中并且我想将其从“安全”更改为“中毒”,我似乎无法弄明白。< / p>
当然,可能有一种更简单的方法来初始化一组变量,但似乎我应该知道如何做到这一点并且遗漏了一些明显的东西。
答案 0 :(得分:0)
如果我理解正确,你有这个:
FruitsArray[0]="Apricot"
FruitsArray[1]="Avocado"
FruitsArray[2]="Banana"
FruitsArray[3]="Apple"
而且,还有:
Apple="safe"
你想要改变FruitsArray指出的Apple的值[3]。
访问此类值称为间接:
index="${FruitsArray[3]}"
echo "variable and value ${FruitsArray[3]}=${!index}"
并改为:
declare ${FruitsArray[3]}="poisoned"
整个脚本:
#!/bin/bash
FruitsArray[0]="Apricot"
FruitsArray[1]="Avocado"
FruitsArray[2]="Banana"
FruitsArray[3]="Apple"
Apple="safe"
index="${FruitsArray[3]}"
echo "from ${FruitsArray[3]}=${!index}"
declare ${FruitsArray[3]}="poisoned"
echo "to ${FruitsArray[3]}=${!index}"
执行时:
from Apple=safe
to Apple=poisoned