This manual page is part of the POSIX Programmer's Manual. The Linux
implementation of this interface may differ (consult the corresponding Linux
manual page for details of Linux behavior), or the interface may not be
implemented on Linux.
exec — execute commands and open, close, or copy file descriptors
exec [command [argument...]]
utility shall open, close, and/or copy file descriptors as
specified by any redirections as part of the command.
is specified without command
s, and any
file descriptors with numbers greater than 2 are opened with associated
redirection statements, it is unspecified whether those file descriptors
remain open when the shell invokes another utility. Scripts concerned that
child shells could misuse open file descriptors can always close them
explicitly, as shown in one of the following examples.
is specified with command
, it shall replace the shell with
without creating a new process. If argument
specified, they shall be arguments to command
. Redirection affects the
current shell execution environment.
See the DESCRIPTION.
The standard error shall be used only for diagnostic messages.
is specified, exec
shall not return to the shell;
rather, the exit status of the process shall be the exit status of the program
, which overlaid the shell. If command
not found, the exit status shall be 127. If command
is found, but it is
not an executable utility, the exit status shall be 126. If a redirection
error occurs (see Section 2.8.1
, Consequences of Shell Errors
the shell shall exit with a value in the range 1−125. Otherwise,
shall return a zero exit status.
The following sections are informative.
as file descriptor 3 for reading:
as file descriptor 4 for writing:
Make file descriptor 5 a copy of file descriptor 0:
Close file descriptor 3:
Cat the file maggie
by replacing the current shell with the cat
Most historical implementations were not conformant in that:
did not pass foo
, Special Built-In Utilities
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2013 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
7, Copyright (C) 2013 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. (This is POSIX.1-2008 with the 2013
Technical Corrigendum 1 applied.) In the event of any discrepancy between this
version and the original IEEE and The Open Group Standard, the original IEEE
and The Open Group Standard is the referee document. The original Standard can
be obtained online at http://www.unix.org/online.html .
Any typographical or formatting errors that appear in this page are most likely
to have been introduced during the conversion of the source files to man page
format. To report such errors, see