間接参照を使用して変数を設定できますか?

間接参照を使用して変数を設定できますか?

たとえば、次のスクリプトは規則Helloに従って印刷されます。${!

A=B
B=Hello
echo ${!A}

しかし、私はどうすればいいですか?置く間接名を持つ変数の値?シンボルを直接使用すると!機能しません。

A=B
!A=Hello # here is tricky line
echo $B

一時ファイルを使用するためのトリックがあることを知っていますが、次のようなものではなく間接的な使用に興味があります。

A=B
echo "$A=Hello" > 1.tmp
. 1.tmp
echo $B

ベストアンサー1

typeset組み込み関数を使用してこれを実行できます。

$ A=B
$ typeset $A=42
$ echo $B
42

または以下を使用してくださいdeclare

$ declare $A=1
$ echo $B
1

おすすめ記事