動的変数に基づいて動的変数を割り当てる最も簡単な方法は何ですか?

動的変数に基づいて動的変数を割り当てる最も簡単な方法は何ですか?

これは私のコードです。

$ abc_1='hello world'
$ abc_2='now is the time'
$ for i in {1..2}; do var=abc_$i;echo ${!var}; done

出力:
こんにちは、今の
時間です

doループ内の2つのステートメントをどのように簡単で効率的なステートメントに組み合わせることができますか?

私は成功せずに次のことを試しました。

echo ${!abc_$i}  
echo ${!{abc_$i}}  
echo ${!abc_${i}}  
echo ${!abc_!{$i}}  

ありがとうございます。

ベストアンサー1

ああ、寝て、そうしないでください。数値で索引付けされたデータがある場合は、プログラミング言語と同様に配列を使用してください。

arr=('hello world' 'now is the time')
for i in "${!arr[@]}"; do
    printf "element at index %s is '%s'\n" "$i" "${arr[i]}"
done

文字列で索引付けされたデータがある場合は、連想配列を使用してください。

たとえば、参照してください。https://mywiki.wooledge.org/BashGuide/Arrays

おすすめ記事