2

考虑以下 Bash 脚本:

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

我声明了一个变量A,为其赋值35,使其B等于A,并将值43赋给B。在这一切之后似乎A保留了该值35,所以我猜当您将 bash 中的一个变量分配给另一个变量时,它是按值复制,而不是按引用复制。

我想要做的是 changeB的值并将其反映在A(通过引用复制)。或者,在我的实际情况下,我根本不想产生按值复制的内存开销,因为我知道它是一个大变量并且不想在内存中存储两次。有没有办法在 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 回答