env — run a program in a modified environment


env [OPTION...] [] [NAME=VALUE...] [ COMMAND [ARG...] ]


Set each NAME to VALUE in the environment and run COMMAND.

Mandatory arguments to long options are mandatory for short options too.

−i, −−ignore−environment

start with an empty environment

−0, −−null

end each output line with NUL, not newline

−u, −−unset=NAME/

remove variable from the environment

−C, −−chdir=DIR/

change working directory to DIR

−S, −−split−string=S/

process and split S into separate arguments; used to pass multiple arguments on shebang lines

−v, −−debug

print verbose information for each processing step


display this help and exit


output version information and exit

A mere − implies −i. If no COMMAND, print the resulting environment.


−S/−−split−string usage in scripts

The −S option allows specifing multiple parameters in a script. Running a script named containing the following first line:

#!/usr/bin/env −S perl −w −T

Will execute perl −w −T .

Without the '−S' parameter the script will likely fail with:

/usr/bin/env: 'perl −w −T': No such file or directory

See the full documentation for more details.


Written by Richard Mlynarik, David MacKenzie, and Assaf Gordon.


GNU coreutils online help: <>

Report env translation bugs to <>


Full documentation at: <>

or available locally via: info '(coreutils) env invocation'


Copyright © 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <>.

This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.