programming, operating system
A variable that is bound in the current environment. When evaluating an expression in some environment, the evaluation of a variable consists of looking up its name in the environment and substituting its value.
Most programming languages have some concept of an environment but in Unix shell scripts it has a specific meaning slightly different from other contexts. In shell scripts, environment variables are one kind of shell variable. They differ from local variables and command line arguments in that they are inheritted by a child process. Examples are the PATH variable that tells the shell the file system paths to search to find command executables and the TZ variable which contains the local time zone. The variable called "SHELL" specifies the type of shell being used.
These variables are used by commands or shell scripts to discover things about the environment they are operating in. Environment variables can be changed or created by the user or a program.
To see a list of environment variables type "setenv" at the csh or tcsh prompt or "set" at the sh, bash, jsh or ksh prompt.
In other programming languages, e.g. functional programming languages, the environment is extended with new bindings when a function's parameters are bound to its actual arguments or when new variables are declared. In a block-structured procedural language, the environment usually consists of a linked list of activation records.