2016-10-12 5 views
0

変数のグループを簡単に初期化する方法を作成しようとしています。bashを使って配列内の変数の値を変更する

考えられるのは、配列を作成し、変数を配列に追加してループして初期化することでした。

問題は、配列内の変数の値を変更する方法がわからないということです。 FruitsArray[3]を変更する方法は分かっていますが、変数$Appleが配列内にあり、それを「安全」から「中毒」に変更したいと思っています。

もちろん、変数のグループを初期化する簡単な方法があるかもしれませんが、私はこれを行う方法を知っている必要があり、明らかに何かを見逃しているようです。

+0

'FruitsArray [$ Apple] = poisoned' – Barmar

+1

「変数' $ Apple'が配列にあります」とはどういう意味ですか?配列には他の変数は含まれません。 – Barmar

+0

'$ Apple'は配列にある変数' Apple'の値になります。対応するインデックスの値を変更するだけで済みます。 – karakfa

答えて

0

私が正しくあなたを理解していれば、あなたはこの持っている:

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

そして、また:

Apple="safe" 

をそして、あなたはFruitsArray [3]によって指摘されたアップルの値を変更したいです。

ような値が間接と呼ばれるAccesing:

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 
関連する問題