Running a Command with a Temporarily Different Environment

Quite a few UNIX commands set themselves up by reading the environment. For example, the vi editor reads startup commands from the EXINIT environment variable. Sometimes, you'll want to override the setting of an environment variable for just one command. There's an easier way than setting the variable to a different value and changing it back after you run the command:

For example, if your EXINIT variable has:

set wrapscan showmatch number

and you want to add nowrapscan to the end of it just this once, you could type (to the Bourne shell):

$ 
$ EXINIT="$EXINIT nowrapscan" vi afile

After that vi command ran, EXINIT wouldn't contain nowrapscan.

For a great example of this technique, see article .

- JP