BASH の関数内でグローバル変数を変更しようとしていますが、その方法についての手がかりがありません。これは私のコードです:
CANDIDATES[5]="1 2 3 4 5 6"
random_mutate()
{
a=$1 #assign name of input variable to "a"
insides=${!a} #See input variable value
RNDM_PARAM=`echo $[ 1 + $[ RANDOM % 5 ]]` #change random position in input variable
NEW_PAR=99 #value to substitute
ARR=($insides) #Convert string to array
ARR[$RNDM_PARAM]=$NEW_PAR #Change the random position
NEW_GUY=$( IFS=$' '; echo "${ARR[*]}" ) #Convert array once more to string
echo "$NEW_GUY"
### NOW, How to assign NEW_GUY TO CANDIDATES[5]?
}
random_mutate CANDIDATES[5]
NEW_GUY を $1 が参照する変数、または $2 が指す別の変数 (コードには含まれていません) に割り当てられるようにしたいと考えています。複数の可能な入力に対して関数を使用するつもりなので、コードで直接割り当てを行いたくありません (実際、割り当て NEW_PAR=99 は、元のコードではかなり複雑です。 R関数を使用してランダム値の範囲内の位置を取得しますが、簡単にするためにこのように含めました)。
うまくいけば、これは十分に明確です。さらに情報が必要な場合はお知らせください。
ありがとうございました、
リベルタード