eval.1p (3383B)
- '\" et
- .TH EVAL "1P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
- .\"
- .SH PROLOG
- 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.
- .\"
- .SH NAME
- eval
- \(em construct command by concatenating arguments
- .SH SYNOPSIS
- .LP
- .nf
- eval \fB[\fIargument\fR...\fB]\fR
- .fi
- .SH DESCRIPTION
- The
- .IR eval
- utility shall construct a command by concatenating
- .IR argument s
- together, separating each with a
- <space>
- character.
- The constructed command shall be read and executed by the shell.
- .SH OPTIONS
- None.
- .SH OPERANDS
- See the DESCRIPTION.
- .SH STDIN
- Not used.
- .SH "INPUT FILES"
- None.
- .SH "ENVIRONMENT VARIABLES"
- None.
- .SH "ASYNCHRONOUS EVENTS"
- Default.
- .SH STDOUT
- Not used.
- .SH STDERR
- The standard error shall be used only for diagnostic messages.
- .SH "OUTPUT FILES"
- None.
- .SH "EXTENDED DESCRIPTION"
- None.
- .SH "EXIT STATUS"
- If there are no
- .IR argument s,
- or only null
- .IR argument s,
- .IR eval
- shall return a zero exit status; otherwise, it shall return the exit
- status of the command defined by the string of concatenated
- .IR argument s
- separated by
- <space>
- characters, or a non-zero exit status if the concatenation could not
- be parsed as a command and the shell is interactive (and therefore did
- not abort).
- .SH "CONSEQUENCES OF ERRORS"
- Default.
- .LP
- .IR "The following sections are informative."
- .SH "APPLICATION USAGE"
- Since
- .IR eval
- is not required to recognize the
- .BR \(dq--\(dq
- end of options delimiter, in cases where the argument(s) to
- .IR eval
- might begin with
- .BR '-'
- it is recommended that the first argument is prefixed by a string that
- will not alter the commands to be executed, such as a
- <space>
- character:
- .sp
- .RS 4
- .nf
- eval " $commands"
- .fi
- .P
- .RE
- .P
- or:
- .sp
- .RS 4
- .nf
- eval " $(some_command)"
- .fi
- .P
- .RE
- .SH EXAMPLES
- .LP
- .nf
- foo=10 x=foo
- y=\(aq$\(aq$x
- echo $y
- \fB$foo\fR
- eval y=\(aq$\(aq$x
- echo $y
- \fB10\fR
- .fi
- .SH "RATIONALE"
- This standard allows, but does not require,
- .IR eval
- to recognize
- .BR \(dq--\(dq .
- Although this means applications cannot use
- .BR \(dq--\(dq
- to protect against options supported as an extension (or errors reported
- for unsupported options), the nature of the
- .IR eval
- utility is such that other means can be used to provide this protection
- (see APPLICATION USAGE above).
- .SH "FUTURE DIRECTIONS"
- None.
- .SH "SEE ALSO"
- .IR "Section 2.14" ", " "Special Built-In Utilities"
- .\"
- .SH COPYRIGHT
- Portions of this text are reprinted and reproduced in electronic form
- from IEEE Std 1003.1-2017, Standard for Information Technology
- -- Portable Operating System Interface (POSIX), The Open Group Base
- Specifications Issue 7, 2018 Edition,
- Copyright (C) 2018 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 .
- .PP
- 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
- https://www.kernel.org/doc/man-pages/reporting_bugs.html .