trusty (1) env.1posix.gz

Provided by: manpages-posix_2.16-1_all bug

NAME

       env - set the environment for command invocation

SYNOPSIS

       env [-i][name=value]...  [utility [argument...]]

DESCRIPTION

       The  env  utility shall obtain the current environment, modify it according to its arguments, then invoke
       the utility named by the utility operand with the modified environment.

       Optional arguments shall be passed to utility.

       If no utility operand is specified, the resulting environment shall be written to  the  standard  output,
       with one name= value pair per line.

OPTIONS

       The  env  utility  shall  conform  to  the Base Definitions volume of IEEE Std 1003.1-2001, Section 12.2,
       Utility Syntax Guidelines.

       The following options shall be supported:

       -i     Invoke utility with exactly the environment specified by the arguments; the inherited  environment
              shall be ignored completely.

OPERANDS

       The following operands shall be supported:

       name=value
              Arguments of the form name= value shall modify the execution environment, and shall be placed into
              the inherited environment before the utility is invoked.

       utility
              The name of the utility to be invoked. If the utility operand names any of  the  special  built-in
              utilities in Special Built-In Utilities , the results are undefined.

       argument
              A string to pass as an argument for the invoked utility.

STDIN

       Not used.

INPUT FILES

       None.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of env:

       LANG   Provide  a  default  value for the internationalization variables that are unset or null. (See the
              Base Definitions volume of IEEE Std 1003.1-2001, Section 8.2, Internationalization  Variables  for
              the  precedence  of  internationalization  variables  used  to  determine  the  values  of  locale
              categories.)

       LC_ALL If set to a non-empty string value, override the values  of  all  the  other  internationalization
              variables.

       LC_CTYPE
              Determine  the locale for the interpretation of sequences of bytes of text data as characters (for
              example, single-byte as opposed to multi-byte characters in arguments).

       LC_MESSAGES
              Determine the locale that should be used to affect the format and contents of diagnostic  messages
              written to standard error.

       NLSPATH
              Determine the location of message catalogs for the processing of LC_MESSAGES .

       PATH   Determine  the  location  of  the  utility,  as  described  in  the  Base  Definitions  volume  of
              IEEE Std 1003.1-2001, Chapter 8, Environment Variables. If PATH is  specified  as  a  name=  value
              operand to env, the value given shall be used in the search for utility.

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       If  no  utility operand is specified, each name= value pair in the resulting environment shall be written
       in the form:

              "%s=%s\n", <name>, <value>

       If the utility operand is specified, the env utility shall not write to standard output.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       If utility is invoked, the exit status of env shall be the exit status of  utility;  otherwise,  the  env
       utility shall exit with one of the following values:

           0  The env utility completed successfully.

       1-125  An error occurred in the env utility.

         126  The utility specified by utility was found but could not be invoked.

         127  The utility specified by utility could not be found.

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       The  command,  env, nice, nohup, time, and xargs utilities have been specified to use exit code 127 if an
       error occurs so that applications can distinguish "failure to  find  a  utility"  from  "invoked  utility
       exited  with  an  error  indication".  The value 127 was chosen because it is not commonly used for other
       meanings; most utilities use small values for "normal error conditions" and the values above 128  can  be
       confused  with  termination  due  to receipt of a signal. The value 126 was chosen in a similar manner to
       indicate that the utility could be found, but not invoked. Some scripts produce meaningful error messages
       differentiating  the  126  and  127  cases.  The  distinction  between exit codes 126 and 127 is based on
       KornShell practice that uses 127 when all attempts to exec the utility fail with [ENOENT], and  uses  126
       when any attempt to exec the utility fails for any other reason.

       Historical  implementations  of  the  env  utility  use the execvp() or execlp() functions defined in the
       System Interfaces volume of IEEE Std 1003.1-2001 to invoke the specified utility;  this  provides  better
       performance  and  keeps  users  from  having  to  escape  characters  with  special meaning to the shell.
       Therefore, shell functions, special built-ins, and built-ins that are only provided by the shell are  not
       found.

EXAMPLES

       The following command:

              env -i PATH=/mybin mygrep xyz myfile

       invokes the command mygrep with a new PATH value as the only entry in its environment. In this case, PATH
       is used to locate mygrep, which then must reside in /mybin.

RATIONALE

       As with all other utilities that  invoke  other  utilities,  this  volume  of  IEEE Std 1003.1-2001  only
       specifies  what  env  does  with standard input, standard output, standard error, input files, and output
       files. If a utility is executed, it is not constrained by the specification of input and output by env.

       The -i option was added to allow the functionality of the withdrawn - option in a manner compatible  with
       the Utility Syntax Guidelines.

       Some have suggested that env is redundant since the same effect is achieved by:

              name=value ... utility [ argument ... ]

       The  example  is  equivalent to env when an environment variable is being added to the environment of the
       command, but not when the environment is being set to the given value. The env utility  also  writes  out
       the  current  environment if invoked without arguments. There is sufficient functionality beyond what the
       example provides to justify inclusion of env.

FUTURE DIRECTIONS

       None.

SEE ALSO

       Parameters and Variables , Special Built-In Utilities

       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 .