変数に値を割り当てる方法は?

変数に値を割り当てる方法は?

次の変数割り当てを処理する方法は?var1=1次の割り当てられた値を割り当てていますが、var2=$var1値を変更するたびに常に古い値が表示されますvar1echo $var2

# var1=1
# var2=$var1
# echo $var2
1
# var1=2
# echo $var2
1

答え1

それはどのようにについてですたくさん/最大プログラミング言語が機能する可能性があります。

命令型言語(bash// C/ ....)では、演算子は次の操作を実行しますJavapython=いいえ数学でも同じように動作します。

a=11を入れるという意味ですa(そこにあるものを上書きします)。

つまり

var1=1       # var1 ← 1      #overwrite var1 with 1 
var2=$var1   # var2 ← $var1  #overwrite var2 with evaluation of $var1 (i.e 1) 
var1=2       # var1 ← 2      #overwrite var1 with 2
stdout ←← $var2              #append $var2 to stdout

だから

#              var1   var2
var1=1       #  1      n/a     
var2=$var1   #  1      1
var1=2       #  2      1

答え2

の値を割り当てると、var12つの独立変数がvar2生成され、2つの変数は同じ値を持ちます。var1var2

var2プロパティで宣言された変数を使用してnameref参照できますvar1

$ var1=1
$ declare -n var2=var1
$ echo "$var2"
1
$ var1=2
$ echo "$var2"
2
$ var2=3
$ echo "$var2 $var1"
3 3

関連情報