Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ eval(1SH) — UTek 3.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

break(1sh)

cd(1sh)

chdir(1sh)

continue(1sh)

csh(1csh)

echo(1sh)

eval(1csh)

exec(1sh)

exit(1sh)

export(1sh)

hash(1sh)

login(1)

pwd(1sh)

read(1sh)

readonly(1sh)

return(1sh)

set(1sh)

sh(1sh)

shift(1sh)

test(1sh)

times(1sh)

trap(1sh)

type(1sh)

ulimit(1sh)

umask(1sh)

unset(1sh)

wait(1sh)

which(1sh)

execve(2)



EVAL(1SH)               COMMAND REFERENCE               EVAL(1SH)



NAME
     eval - execute arguments (sh built-in)

SYNOPSIS
     eval [ args . . .  ]

DESCRIPTION
     eval 's arguments are read as input to the shell and the
     resulting command(s) are executed. This command is useful
     for executing the output of commands and the contents of
     shell variables.

EXAMPLES
     This example shows a shell script, called pathdir, which
     prints the word 'cd' followed by the name of the directory
     containing the name of the given executable file.

          #!/bin/sh
          if test $# -ne 1
          then
               echo "$0 : usage : "`basename $0`" file" 1>&2
               exit 1
          fi
          where=`pathof $1`
          if test $? -ne 0
          then
               exit 1
          fi
          echo -n "cd "
          expr "$where" : '^\(.*)/.*$'

     Executing the command eval pathdir sh will effect the
     command cd /bin, since that is where the program sh resides.

     For another example of using eval to execute the output from
     a command, see the documentation for tset(1).

     Another use of eval is to store commands in shell variables
     and have them execute. For example, the commands:

          w='who|sort'
          eval $w

     will cause the command 'who | sort' to be executed. Note
     that simply typing '$w' on the command line will not work in
     this case. The reason for this is that the shell has already
     passed the stage of evaluating the '|' when it expands the
     variable.

     It is possible to have shell variables which execute
     correctly without eval as in the following example:




Printed 5/12/88                                                 1





EVAL(1SH)               COMMAND REFERENCE               EVAL(1SH)



          w='eval who|sort'
          $w

     It is important to note that the commands are run in the
     current shell, not a subshell. This means that the following
     use of a shell variable works as expected:

          bin='eval cd /bin;pwd'
          $bin

     The command $bin will print the line '/bin' and the current
     shell becomes /bin.

RETURN VALUE
     Eval returns the exit status of the last command executed.

SEE ALSO
     break(1sh), cd(1sh), chdir(1sh), continue(1sh), csh(1csh),
     echo(1sh), eval(1csh), exec(1sh), exit(1sh), export(1sh),
     hash(1sh), login(1), pwd(1sh), read(1sh), readonly(1sh),
     return(1sh), set(1sh), sh(1sh), shift(1sh), test(1sh),
     times(1sh), trap(1sh), type(1sh), ulimit(1sh), umask(1sh),
     unset(1sh), wait(1sh), which(1sh), and execve(2).
































Printed 5/12/88                                                 2





































































%%index%%
na:288,94;
sy:382,164;
de:546,392;
ex:938,1611;2909,399;
rv:3308,228;
se:3536,912;
%%index%%000000000116

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026