User Commands exec(1)
NAME
exec, eval, source - shell built-in functions to execute
other commands
SYNOPSIS
sh
exec [argument]...
eval [argument]...
csh
exec command
eval argument...
source [-h] name
ksh
*exec [argument]...
*eval [argument]...
ksh93
]exec [-c] [-a name] [command [argument ... ]
]eval [argument]...
DESCRIPTION
sh
The exec command specified by the arguments is executed in
place of this shell without creating a new process.
Input/output arguments and appear and, if no other arguments
are specified, cause the shell input/output to be modified.
The arguments to the eval built-in are read as input to the
shell and the resulting command(s) executed.
csh
exec executes command in place of the current shell, which
terminates.
SunOS 5.11 Last change: 8 Apr 2008 1
User Commands exec(1)
eval reads its arguments as input to the shell and executes
the resulting command(s). This is usually used to execute
commands generated as the result of command or variable sub-
stitution.
source reads commands from name. source commands can be
nested, but if they are nested too deeply the shell can run
out of file descriptors. An error in a sourced file at any
level terminates all nested source commands.
-h Place commands from the file name on the history list
without executing them.
ksh
With the exec built-in, if arg is specified, the command
specified by the arguments is executed in place of this
shell without creating a new process. Input/output arguments
can appear and affect the current process. If no arguments
are specified the effect of this command is to modify file
descriptors as prescribed by the input/output redirection
list. In this case, any file descriptor numbers greater than
2 that are opened with this mechanism are closed when invok-
ing another program.
The arguments to eval are read as input to the shell and the
resulting command(s) executed.
On this man page, ksh(1) commands that are preceded by one
or two * (asterisks) are treated specially in the following
ways:
1. Variable assignment lists preceding the command
remain in effect when the command completes.
2. I/O redirections are processed after variable
assignments.
3. Errors cause a script that contains them to abort.
4. Words, following a command preceded by ** that are
in the format of a variable assignment, are
expanded with the same rules as a variable assign-
ment. This means that tilde substitution is per-
formed after the = sign and word splitting and file
name generation are not performed.
ksh93
SunOS 5.11 Last change: 8 Apr 2008 2
User Commands exec(1)
exec is a special built-in command that can be used to mani-
pulate file descriptors or to replace the current shell with
a new command.
If command is specified, then the current shell process is
replaced by command rather than running command and waiting
for it to complete. There is no need to use exec to enhance
performance since the shell implicitly uses the exec mechan-
ism internally whenever possible.
If no operands are specified, exec can be used to open or
close files, or to manipulate file descriptors from 0 to 9
in the current shell environment using the standard redirec-
tion mechanism available with all commands. The close-on-
exec flags is set on file descriptor numbers greater than 2
that are opened this way so that they are closed when
another program is invoked.
Because exec is a special command, any failure causes the
script that invokes it to exit. This can be prevented by
invoking exec from the command utility.
exec cannot be invoked from a restricted shell to create
files or to open a file for writing or appending.
eval is a shell special built-in command that constructs a
command by concatenating the arguments together, separating
each with a space. The resulting string is taken as input to
the shell and evaluated in the current environment. command
words are expanded twice, once to construct argument, and
again when the shell executes the constructed command. It is
not an error if argument is not specified.
On this manual page, ksh93 commands that are preceded by one
or two ] symbols are special built-in commands and are
treated specially in the following ways:
1. Variable assignment lists preceding the command
remain in effect when the command completes.
2. I/O redirections are processed after variable
assignments.
3. Errors cause a script that contains them to abort.
4. They are not valid function names.
SunOS 5.11 Last change: 8 Apr 2008 3
User Commands exec(1)
5. Words following a command preceded by ] that are
in the format of a variable assignment are expanded
with the same rules as a variable assignment. This
means that tilde substitution is performed after
the = sign and field splitting and file name gen-
eration are not performed.
OPTIONS
ksh93
The following options are supported by ksh93 exec:
-a name argv[0] is set to name for command.
-c Clear all environment variables before executions
except variable assignments that are part of the
current exec command.
EXIT STATUS
ksh
The following exit values are returned by exec:
0 Successful completion.
1-125 A redirection error occurred.
127 command was not found.
126 command was found, but it is not an executable
utility.
ksh93
The following exit values are returned by exec. If command
is specified, exec does not return.
0 Successful completion. All I/O redirections were suc-
cessful.
>0 An error occurred.
The following exit values are returned by eval:
SunOS 5.11 Last change: 8 Apr 2008 4
User Commands exec(1)
If argument is not specified, the exit status is 0. Other-
wise, it is the exit status of the command defined by the
argument operands.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Availability SUNWcsu
SEE ALSO
csh(1), ksh(1), ksh93(1), sh(1), attributes(5)
SunOS 5.11 Last change: 8 Apr 2008 5
|