Команда eval в Bash и ее типичное использование

После прочтения man-страниц bash и относительно этогосообщение.

Я до сих пор не могу понять, что именноeval Команда делает и что было бы его типичным использованием. Например, если мы делаем:

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

Что именно здесь происходит, и как знак доллара и обратная косая черта связаны с проблемой?

Ответы на вопрос(10)

Ваш ответ на вопрос