a=2
pt2=3
echo $a
2
echo $pt2
3
どうやって使うの?
echo $pt($a)
pt2
内容を印刷しますか?
別のオプションは
b=pt$a
echo $b
pt2
echo $[$b]
3
答え1
a=2
pt2=3
eval "echo \"\${pt$a}\""
3
または:
b=pt$a
eval "echo \"\${$b}\""
3
他の方法もあります:
a=2
pt2=3
export "pt$a=$((pt$a + $(echo pt$a)))"
echo $((pt$a))
6
export
eval
後で危険性の低い方法でこの方法で作業できますが、必要に応じて後でエクスポートしないことがあります。そして、$((
arithmetic =割り当ては))
現在のシェルの現在のコマンドに影響します。したがって、値が数値の場合、直接変数の割り当てはまだ安全です。
変数の割り当てを2回評価するために使用されるシェルも.dot
あります。<<HEREDOCS
var1=var2 ; . <<HEREDOC /dev/stdin
$var1=val
HEREDOC
echo $var2
val