hello friends,
I am looking for a way to do what I described in the title. When running command command
, I dont want to have to type SOME_ENV_VAR=value command
every time, especially if there are multiple.
I am sure youre immediately thinking aliases. My issue with aliases is that if I do this for several programs, my .bashrc will get large and messy quickly. I would prefer a way to separate those by program or application, rather than put them all in one file.
Is there a clean way to do this?
You could write a shell script:
#!/usr/bin/env sh export SOME_ENV_VAR=value command
Then place it on your path, for example
/usr/local/bin/command_with_env
.I avoided overriding the command itself and naming the script the same, because then I think it would try to invoke itself.
Just replace
command
in your script with/usr/bin/command
or whatever. It’s generally good practice to full path anything run from a script anyway just to remove any unintended environment dependencies.Good point. But then if both the script and the command have the same filename, it will be important to make sure the script has a higher precedence in the
PATH
. Adding it to the end of.bashrc
should be enough I think.