September 2009
Beginner
942 pages
85h 34m
English
eval
eval argsTypically, eval is used in shell scripts, and args is a line of code that contains shell variables. eval forces variable expansion to happen first and then runs the resulting command. This “double--scanning” is useful any time shell variables contain input/output redirection symbols, aliases, or other shell variables. (For example, redirection normally happens before variable expansion, so a variable containing redirection symbols must be expanded first using eval; otherwise, the redirection symbols remain uninterpreted.)
This fragment of a shell script shows how eval constructs a command that is interpreted in the right order:
for option
do
case "$option" in Define where output goes
save) out=' > $newfile' ;;
show) out=' | more' ;;
esac
done
eval sort $file $out