Previous | Table of Contents | Next |
DESCRIPTION
The external env command creates a new environment for executing a given command. Depending on the options, env either uses the current environment or completely ignores it. If env uses the environment, modifications are made based on the arguments given. After the new environment is set up, the command argument is executed.
COMMAND FORMAT
Following is the general format of the env command.
env [ - ] [ name=value ... ] [ command [ options ] [ args ] ]
Options
The only valid option for env is described as follows :
- | Do not pass the current environment to the command being executed by env . |
Arguments
The following list describes the arguments that may be passed to the env command.
name=value | Variables may be assigned values that will be exported for the command to use during execution. |
command | The command that env executes with the new environment. The options and arguments are those of the command being executed; they are not interpreted by env . |
If no arguments are specified, env displays all exported variables.
FURTHER DISCUSSION
Arguments must be of the form variable=value . These arguments are merged into the existing environment. The remainder of the arguments are executed as a normal command. The command executes with the newly defined environment. After the command exits, the environment returns to the state it was before the env command was executed.
The following command shows the changes made to the environment by env :
cj> env HOME=/tmp TERM=adm5 env ENV=/u1/ts/mylogin/.kshrc FCEDIT=vi HOME=/tmp LOGNAME=mylogin MAIL=/usr/mail/mylogin PATH=:/u1/ts/mylogin/bin:/bin:/usr/bin:/usr/lbin:/usr/local/bin SHELL=/bin/ksh TERM=adm5 TMPDIR=/tmp TZ=CST6CDT VISUAL=vi
The env command modifies your HOME and TERM variables and then executes the env command again to show the changes in the new temporary environment.
If you do not wish to have the current environment passed to the command for execution, you can use the - (hyphen) option. Only the variables you define on the env command line will be passed to the command. The following command demonstrates the use of the dash option:
cj> env - HOME=/tmp TERM=adm5 env HOME=/tmp TERM=adm5
The env command will create a new temporary environment with only the HOME and TERM variables defined.
If no arguments are given, env lists out the current environment with one variable and value per line.
RELATED COMMANDS
Refer to the ksh command described in Module 71.
RELATED FILES
The env command writes to the standard output.
APPLICATIONS
The env command is useful for testing commands in controlled environments. It may be used to execute a command in a new environment without affecting your own personal environment. It is probably used more to display the current environment than as a command executor.
TYPICAL OPERATION
In this activity you use the env command to display your current environment. Begin at the shell prompt.
cj> env ENV=/u1/ts/mylogin/.kshrc FCEDIT=vi HOME=/u1/ts/mylogin LOGNAME=mylogin MAIL=/usr/mail/mylogin PATH=:/u1/ts/mylogin/bin:/bin:/usr/bin:/usr/lbin:/usr/local/bin SHELL=/bin/ksh TERM=vt100 TMPDIR=/tmp TZ=CST6CDT VISUAL=vi
Previous | Table of Contents | Next |