これは私のコードです。
$ 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