Typically, eval is used in shell scripts, and args is a line of code that may contain 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.)
The following line 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:
echo $bRead the command line once $a %
eval echo $bRead the command line twice hello
Another example of eval can be found under alias.