新しい変数名を動的に生成する方法

新しい変数名を動的に生成する方法

次のループで異なる名前のファイルセットを処理するために、シェルスクリプトで動的var名を生成しようとしています。

SAMPLE1='1-first.with.custom.name'
SAMPLE2='2-second.with.custom.name'

for (( i = 1; i <= 2; i++ ))
do
  echo SAMPLE{$i}
done

私は出力を期待しています:

1-first.with.custom.name
2-second.with.custom.name

しかし、私は次のようになります。

SAMPLE{1}
SAMPLE{2}

var名を動的に生成できますか?

ベストアンサー1

配列を使用しない理由は、同様の操作を実行するために使用されます。

sample[1]='1-first.with.custom.name'
sample[2]='2-second.with.custom.name'

for (( i = 1; i <= 2; i++ ))
do
  echo ${sample[$i]}
done

また、予約された変数名が誤って使用されないようにするには、スクリプト内の変数名をすべて大文字にしないでください。

おすすめ記事