env man page

env — run a program in a modified environment



env program

env -i program

env -u variable program

env variable=value program


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 1.pl containing the following first line:

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

Will execute perl -w -T 1.pl .

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.

Reporting Bugs

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report env translation bugs to <https://translationproject.org/team/>

See Also

Full documentation at: <https://www.gnu.org/software/coreutils/env>
or available locally via: info '(coreutils) env invocation'

Referenced By

environ(7), guestfs-release-notes(1), ksh(1), mosh(1), pkgconf(1), pkg-config(1), pmpython(1), procenv(1), tgif.1x(1).

July 2018 GNU coreutils 8.30 User Commands