eval Befehl in Bash und seine typischen Verwendungen

Nach dem Lesen der Bash-Manpages und in Bezug daraufPost.

Ich habe immer noch Probleme zu verstehen, was genau das isteval Befehl tut und welche würde seine typischen Verwendungen sein. Zum Beispiel, wenn wir das tun:

bash$ set -- one two three  # sets $1 $2 $3
bash$ echo $1
one
bash$ n=1
bash$ echo ${$n}       ## First attempt to echo $1 using brackets fails
bash: ${$n}: bad substitution
bash$ echo $($n)       ## Second attempt to echo $1 using parentheses fails
bash: 1: command not found
bash$ eval echo \${$n} ## Third attempt to echo $1 using 'eval' succeeds
one

Was genau passiert hier und wie hängen das Dollarzeichen und der Backslash mit dem Problem zusammen?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage