sh + wie man einen Befehl ausführt und ihn in den Parameter (VAL) einfügt

sh + wie man einen Befehl ausführt und ihn in den Parameter (VAL) einfügt

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)

verwandte Informationen