I often want to add paths to my $PATH variable.
It’s nice to do this with functions (in your .zshrc or .bashrc file):
pathappend () {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
PATH="${PATH:+"$PATH:"}$1"
fi
}
pathprepend () {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
PATH="$1${PATH:+":$PATH"}"
fi
}These will check if a) the directory exists and b) it isn’t already in your $PATH, and then either append or prepend the path into your $PATH variable.
Then you can put things like this in:
pathprepend $HOME/.local/bin
pathappend $HOME/code/binAnd if you execute your .bashrc or .zshrc multiple times, your $PATH won’t grow.
Note: The functions above come almost directly from a superuser post.