Provided by: manpages-posix_2013a-1_all bug

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.

NAME

       eval — construct command by concatenating arguments

SYNOPSIS

       eval [argument...]

DESCRIPTION

       The eval utility shall construct a command by concatenating arguments together, separating
       each with a <space> character.  The constructed command shall be read and executed by  the
       shell.

OPTIONS

       None.

OPERANDS

       See the DESCRIPTION.

STDIN

       Not used.

INPUT FILES

       None.

ENVIRONMENT VARIABLES

       None.

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       Not used.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       If  there  are no arguments, or only null arguments, eval shall return a zero exit status;
       otherwise, it shall return the exit status  of  the  command  defined  by  the  string  of
       concatenated  arguments  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).

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       Since  eval is not required to recognize the "--" end of options delimiter, in cases where
       the argument(s) to eval might begin with '-' 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:

           eval " $commands"

       or:

           eval " $(some_command)"

EXAMPLES

       foo=10 x=foo
       y='$'$x
       echo $y
       $foo
       eval y='$'$x
       echo $y
       10

RATIONALE

       This standard allows, but does not require, eval to recognize "--".  Although  this  means
       applications  cannot  use  "--"  to  protect against options supported as an extension (or
       errors reported for unsupported options), the nature of the  eval  utility  is  such  that
       other means can be used to provide this protection (see APPLICATION USAGE above).

FUTURE DIRECTIONS

       None.

SEE ALSO

       Section 2.14, Special Built-In Utilities

COPYRIGHT

       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 https://www.kernel.org/doc/man-pages/reporting_bugs.html .