使用bash更改数组中变量的值

时间:2016-10-12 20:55:51

标签: arrays bash variables

我正在尝试创建一种初始化一组变量的简单方法。

我们的想法是创建一个数组并将变量添加到数组中,然后遍历它们并初始化它们。

问题在于我似乎无法弄清楚如何更改数组中变量的值。我知道如何将FruitsArray[3]更改为等于其他内容,但如果变量$Apple在数组中并且我想将其从“安全”更改为“中毒”,我似乎无法弄明白。< / p>

当然,可能有一种更简单的方法来初始化一组变量,但似乎我应该知道如何做到这一点并且遗漏了一些明显的东西。

1 个答案:

答案 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