次のコードがあります
let a=1
let b=a
echo $b
bをエコーするとき、その値(「a」)を参照し、a(「1」)の値を表示したい
これは達成できますか?
まず、あなたは本当にこれをしたくないと主張します。しかし、あなたを説得する代わりに、それを行う方法は次のとおりです。
$ let a=1
$ b=a
$ echo $b
a
$ eval "echo \$$b"
1
後で文字列として右側にアクセスする必要があるため、2 番目の割り当てに「let」を使用できないことに注意してください。
私はあなたが欲しいと思いますlet b=$a
シェルがbashの場合、算術式ではオプションであるため、実際にはb
「a」ではなく「1」に設定され$
ます(を使用して強制しますlet
)。
を使用せずlet
に、これはあなたが探している構文です(bashを想定):a=1; b=a; echo $b ${!b}
出力a 1