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.)
A Bourne shell example can be found under
eval
in Section 4.
Other uses of
eval
are shown below and under
alias
.
The following lines can be placed in the
.login
file
to set up terminal characteristics:
set noglob
eval `tset -s xterm`
unset noglob
The following commands show the effect of
eval
:
%
set b='$a'
%
set a=hello
%
echo $b
Read the command line once.
$a
%
eval echo $b
Read the command line twice.
hello