.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved .TH "EXEC" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" .\" exec .SH NAME exec \- execute commands and open, close, or copy file descriptors .SH SYNOPSIS .LP \fBexec\fP \fB[\fP\fIcommand\fP \fB[\fP\fIargument\fP \fB...\fP\fB]]\fP .SH DESCRIPTION .LP The \fIexec\fP utility shall open, close, and/or copy file descriptors as specified by any redirections as part of the command. .LP If \fIexec\fP is specified without \fIcommand\fP or \fIargument\fPs, 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. .LP If \fIexec\fP is specified with \fIcommand\fP, it shall replace the shell with \fIcommand\fP without creating a new process. If \fIargument\fPs are specified, they shall be arguments to \fIcommand\fP. Redirection affects the current shell execution environment. .SH OPTIONS .LP None. .SH OPERANDS .LP See the DESCRIPTION. .SH STDIN .LP Not used. .SH INPUT FILES .LP None. .SH ENVIRONMENT VARIABLES .LP None. .SH ASYNCHRONOUS EVENTS .LP Default. .SH STDOUT .LP Not used. .SH STDERR .LP The standard error shall be used only for diagnostic messages. .SH OUTPUT FILES .LP None. .SH EXTENDED DESCRIPTION .LP None. .SH EXIT STATUS .LP If \fIcommand\fP is specified, \fIexec\fP shall not return to the shell; rather, the exit status of the process shall be the exit status of the program implementing \fIcommand\fP, which overlaid the shell. If \fIcommand\fP is not found, the exit status shall be 127. If \fIcommand\fP is found, but it is not an executable utility, the exit status shall be 126. If a redirection error occurs (see \fIConsequences of Shell Errors\fP ), the shell shall exit with a value in the range 1-125. Otherwise, \fIexec\fP shall return a zero exit status. .SH CONSEQUENCES OF ERRORS .LP Default. .LP \fIThe following sections are informative.\fP .SH APPLICATION USAGE .LP None. .SH EXAMPLES .LP Open \fIreadfile\fP as file descriptor 3 for reading: .sp .RS .nf \fBexec 3< readfile \fP .fi .RE .LP Open \fIwritefile\fP as file descriptor 4 for writing: .sp .RS .nf \fBexec 4> writefile \fP .fi .RE .LP Make file descriptor 5 a copy of file descriptor 0: .sp .RS .nf \fBexec 5<&0 \fP .fi .RE .LP Close file descriptor 3: .sp .RS .nf \fBexec 3<&- \fP .fi .RE .LP Cat the file \fBmaggie\fP by replacing the current shell with the \fIcat\fP utility: .sp .RS .nf \fBexec cat maggie \fP .fi .RE .SH RATIONALE .LP Most historical implementations were not conformant in that: .sp .RS .nf \fBfoo=bar exec cmd \fP .fi .RE .LP did not pass \fBfoo\fP to \fBcmd\fP. .SH FUTURE DIRECTIONS .LP None. .SH SEE ALSO .LP \fISpecial Built-In Utilities\fP .SH COPYRIGHT Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. 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.opengroup.org/unix/online.html .