Scroll to navigation

ENV(1) User Commands ENV(1)


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 <>


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.


Full documentation at: <>
or available locally via: info '(coreutils) env invocation'
February 2019 GNU coreutils 8.30