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:
$VARNAME=value command args
In the C shell on UNIX systems that have the env command, type:
%env VARNAME=value command args
Or, in any C shell, use a subshell (13.7) like this:
%(setenv VARNAME value; command args)
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):
$ | $ |
---|
After that vi command ran, EXINIT wouldn't contain
nowrapscan
.
For a great example of this technique, see article 6.7.
-