Name

eval

Synopsis

    eval args

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.) A Bourne shell example can be found under eval in Chapter 4. A tcsh example of eval can be found under alias. Other uses of eval are shown next.

Examples

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

Get Unix in a Nutshell, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.