変数連結の変数

変数連結の変数

私はこれが非常に単純な問題だと思いますが、それを機能させることはできません。以下の完全な変数のリストがあります。

SP60=OLA SP61=BYE SP62=TRT

特定の数の変数から呼び出すループを作成したいので、簡単な解決策は次のとおりです。

for i in {60..62}; do SP=$"SP$i"; echo $SP.txt; done

もともと予想した結果は次のとおりです。

OLA.txt BYE.txt TRT.txt

しかし、私は理解しています

SP60.txt...

これを行う簡単な方法があるかどうか疑問に思います。

答え1

次のbash/kshスクリプトを考えてみましょう。

SP60="OLA"
SP61="BYE"
SP62="TRT"

for (( i = 60; i <= 62; ++i )); do
    typeset -n var="SP$i"
    printf 'SP%d = %s.txt\n' "$i" "$var"
done

以下が出力されます。

SP60 = OLA.txt
SP61 = BYE.txt
SP62 = TRT.txt

名前で変数を参照します( in または with varinside and を使用して宣言)。つまり、逆参照されるたびに参照する変数の値に拡張されます。declare -nbashtypeset -nbashksh

答え2

変数が初期化された後の別のオプション:

for i in $SP{60..62}; do echo $i.txt; done

関連情報