【问题标题】:Changing the value of a variable in an array using bash使用 bash 更改数组中变量的值
【发布时间】:2016-10-12 20:55:51
【问题描述】:

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

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

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

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

【问题讨论】:

  • FruitsArray[$Apple]=poisoned
  • “变量$Apple在数组中”是什么意思。数组不包含其他变量。
  • $Apple 将是数组中变量Apple 的值。您只需要更改相应索引中的值即可。

标签: arrays bash variables


【解决方案1】:

如果我理解正确,你有这个:

FruitsArray[0]="Apricot"
FruitsArray[1]="Avocado"
FruitsArray[2]="Banana"
FruitsArray[3]="Apple"

还有:

Apple="safe"

你想改变 FruitsArray[3] 指向的 Apple 的值。

访问这样的值称为间接:

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

【讨论】:

    猜你喜欢
    • 2013-05-08
    • 2016-10-13
    • 2013-06-28
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多