私はこれが非常に単純な問題だと思いますが、それを機能させることはできません。以下の完全な変数のリストがあります。
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 var
inside and を使用して宣言)。つまり、逆参照されるたびに参照する変数の値に拡張されます。declare -n
bash
typeset -n
bash
ksh
答え2
変数が初期化された後の別のオプション:
for i in $SP{60..62}; do echo $i.txt; done