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?
There might be a better way, but how I generally handle this is adding the
~/.local/bin
directory to the start of thePATH
env via~/.bashrc
like:export PATH="${HOME}/.local/bin:${PATH}"
and creating a file with the name
~/.local/bin/command
. This file will look something like what is below, note the full path to the real binary (/usr/bin/command
in this case) else you’ll get an endless recursion:#!/bin/bash export SOME_ENV_VAR=value /usr/bin/command ${@}
Once you
chmod +x ~/.local/bin/command
, you can just callcommand
and it will run it with the script which sets up the environment and passes the arguments to the actual binary.