19 lines
501 B
Bash
Executable File
19 lines
501 B
Bash
Executable File
# Set $PATH
|
|
# Put only directories in $PATH that exist and remove duplicates
|
|
typeset -U path # No duplicates
|
|
path=()
|
|
|
|
_prepath() {
|
|
for dir in "$@"; do
|
|
dir=${dir:A}
|
|
[[ ! -d "$dir" ]] && return
|
|
path=("$dir" $path)
|
|
done
|
|
}
|
|
|
|
_prepath /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/sbin # BSD and macOS
|
|
_prepath /opt/homebrew/bin /opt/homebrew/sbin /usr/local/bin # Homebrew on macOS
|
|
_prepath ~/bin ~/.local/bin # $HOME
|
|
|
|
unfunction _prepath
|