eval
args
Typically,
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.) See the C-shell
eval
(Section 5)
for another example.
This fragment of a Bourne 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