Bitte beachten Sie die folgenden Befehle unten, ( die Shell istSch)
etwas ist mir nicht klar
wenn ich laufe - eval echo \$arr$n, erhalte ich den WertAwie erwartet
warum also: VAL=eval echo \$arr$n
, Undecho $VALnicht den gleichen Wert druckenA?
setze einen Wert in arr1
# n=1
# eval arr$n=a
drucke einen Wert von arr1
# n=1
# eval echo \$arr$n
a
Satzeval echo \$arr$n hineinVALund drucken$VAL
# VAL=` eval echo \$arr$n `
# echo $VAL
{*}1
was muss im Befehl behoben werden -VAL=eval echo \$arr$n
, also wenn ichecho $VALIch werde den Wert erhaltenA ?
Antwort1
Versuchen Sie es mit $()
anstelle von Backquotes:
VAL=$(eval echo \$arr$n)