bash 動的 (変数) 変数名

bash 動的 (変数) 変数名

要素配列を操作し、いくつかの算術プロセスを生成して文字列シーケンスを動的に生成したいと思います。

for name in FIRST SECOND THIRD FOURTH FIFTH; do
    $name = $(( $6 + 1 ))
    $name = "${$name}q;d"
    echo "${$name}"; printf "\n"
done

$6等しい場合、予想される結果は次のとおりです0

1q;d
2q;d
3q;d
4q;d
5q;d

しかし、このエラーが発生しました。

reel_first_part.sh: line 18: FIRST: command not found
reel_first_part.sh: line 19: ${$name}q;d: bad substitution
reel_first_part.sh: line 18: FIRST: command not found
reel_first_part.sh: line 19: ${$name}q;d: bad substitution
reel_first_part.sh: line 18: FIRST: command not found
reel_first_part.sh: line 19: ${$name}q;d: bad substitution

簡単だと思います。私は次のようなことをしたときに働きました。

FIRST=$(( $6 + 1 ))
FIRST="${FIRST}q;d"

ベストアンサー1

別の変数に名前を保存している間に bash 変数を参照するには、次のようにします。

$ var1=hello
$ var2=var1
$ echo ${!var2}
hello

この例では、アクセス中の変数の名前がvar2に格納されています。その後、アクセスしたい変数の名前を含む変数を${!<varable name>}使用してアクセスできます。<variable name>

おすすめ記事