2

次の Bash スクリプトを検討してください。

$ A=35
$ echo $A
35
$ B=$A
$ echo $B
35
$ B=43
$ echo $B
43
$ echo $A
35

変数を宣言し、それにA値を代入し、 と等しくし、値を に代入しました。この後も値が保持されているように見えるので、bash のある変数を別の変数に割り当てると、参照によるコピーではなく、値によるコピーになると思います。 35BA43BA35

できるようにしたいのは、Bの値を変更して反映させることですA(参照によるコピー)。または、私の実際のケースでは、値によるコピーのメモリ オーバーヘッドを発生させたくありません。これは、大きな変数であり、メモリに 2 回格納したくないためです。Bashでこれを行う方法はありますか?

4

1 に答える 1

3

で別の変数を参照できます

$ a=42
$ reference=a
$ echo ${!reference}
42

参照変数の値を変更するには

$ eval ${reference}=4
$ echo ${!reference}
4
echo $a
4
于 2013-04-13T13:56:22.680 に答える