From 30c57e10389f10f356832e0fd8367df27327057c Mon Sep 17 00:00:00 2001 From: Gea-Suan Lin Date: Fri, 7 Apr 2023 21:45:07 +0800 Subject: [PATCH] Prevent from duplicated entries in PATH. --- .bashrc | 8 +++++++- .bashrc.local | 15 ++++++++++++--- .zshrc | 8 +++++++- .zshrc.local | 15 ++++++++++++--- 4 files changed, 38 insertions(+), 8 deletions(-) diff --git a/.bashrc b/.bashrc index efdd219..453a7fe 100644 --- a/.bashrc +++ b/.bashrc @@ -51,10 +51,16 @@ export HISTTIMEFORMAT="%y/%m/%d %T " export HOMEBREW_NO_ANALYTICS=1 export LESS="-EfmrSwX" export LSCOLORS="gxfxcxdxbxegedabagacad" -export PATH="${HOME}/bin:${HOME}/.local/bin:${PATH}" export PYTHONDONTWRITEBYTECODE=yes export QUILT_PATCHES="debian/patches" # +if [[ ! "${PATH}" =~ "(^|:)${HOME}/bin(:|$)" ]]; then + export PATH="${HOME}/bin:${PATH}" +fi +if [[ ! "${PATH}" =~ "(^|:)${HOME}/\\.local/bin(:|$)" ]]; then + export PATH="${HOME}/.local/bin:${PATH}" +fi +# if [ -e /usr/lib/jvm/default-java ]; then export JAVA_HOME=/usr/lib/jvm/default-java fi diff --git a/.bashrc.local b/.bashrc.local index 3efdc37..e18a1c0 100644 --- a/.bashrc.local +++ b/.bashrc.local @@ -11,7 +11,12 @@ alias update="(cd ~/git; make all)" # export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then - export PATH="${PYENV_ROOT}/bin:${PYENV_ROOT}/shims:${PATH}" + if [[ ! "${PATH}" =~ "(^|:)${PYENV_ROOT}/bin(:|$)" ]]; then + export PATH="${PYENV_ROOT}/bin:${PATH}" + fi + if [[ ! "${PATH}" =~ "(^|:)${PYENV_ROOT}/shims(:|$)" ]]; then + export PATH="${PYENV_ROOT}/shims:${PATH}" + fi eval "$(pyenv init - --no-rehash)" fi # @@ -19,11 +24,15 @@ export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || pr [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm # if [ -d "${HOME}/.rbenv" ]; then - export PATH="${HOME}/.rbenv/bin:${PATH}" + if [[ ! "${PATH}" =~ "(^|:)${HOME}/\\.rbenv/bin(:|$)" ]]; then + export PATH="${HOME}/.rbenv/bin:${PATH}" + fi eval "$(rbenv init - --no-rehash)" fi # if [ -d "${HOME}/.rvm" ]; then - export PATH="${HOME}/.rvm/bin:${PATH}" + if [[ ! "${PATH}" =~ "(^|:)${HOME}/\\.rvm/bin(:|$)" ]]; then + export PATH="${HOME}/.rvm/bin:${PATH}" + fi source "${HOME}/.rvm/scripts/rvm" fi diff --git a/.zshrc b/.zshrc index af7bc97..c9a1a03 100644 --- a/.zshrc +++ b/.zshrc @@ -131,11 +131,17 @@ export HISTSIZE=2000 export HOMEBREW_NO_ANALYTICS=1 export LESS="-EfmrSwX" export LSCOLORS="gxfxcxdxbxegedabagacad" -export PATH="${HOME}/bin:${HOME}/.local/bin:${PATH}" export PYTHONDONTWRITEBYTECODE=yes export QUILT_PATCHES="debian/patches" export SAVEHIST=2000 # +if [[ ! "${PATH}" =~ "(^|:)${HOME}/bin(:|$)" ]]; then + export PATH="${HOME}/bin:${PATH}" +fi +if [[ ! "${PATH}" =~ "(^|:)${HOME}/\\.local/bin(:|$)" ]]; then + export PATH="${HOME}/.local/bin:${PATH}" +fi +# if [[ -e /usr/lib/jvm/default-java ]]; then export JAVA_HOME=/usr/lib/jvm/default-java fi diff --git a/.zshrc.local b/.zshrc.local index a1ad449..95c6f71 100644 --- a/.zshrc.local +++ b/.zshrc.local @@ -11,7 +11,12 @@ alias "update=(cd ~/git; make all)" # export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then - export PATH="${PYENV_ROOT}/bin:${PYENV_ROOT}/shims:${PATH}" + if [[ ! "${PATH}" =~ "(^|:)${PYENV_ROOT}/bin(:|$)" ]]; then + export PATH="${PYENV_ROOT}/bin:${PATH}" + fi + if [[ ! "${PATH}" =~ "(^|:)${PYENV_ROOT}/shims(:|$)" ]]; then + export PATH="${PYENV_ROOT}/shims:${PATH}" + fi eval "$(pyenv init - --no-rehash)" fi # @@ -19,11 +24,15 @@ export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || pr [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm # if [ -d "${HOME}/.rbenv" ]; then - export PATH="${HOME}/.rbenv/bin:${PATH}" + if [[ ! "${PATH}" =~ "(^|:)${HOME}/\\.rbenv/bin(:|$)" ]]; then + export PATH="${HOME}/.rbenv/bin:${PATH}" + fi eval "$(rbenv init - --no-rehash)" fi # if [ -d "${HOME}/.rvm" ]; then - export PATH="${HOME}/.rvm/bin:${PATH}" + if [[ ! "${PATH}" =~ "(^|:)${HOME}/\\.rvm/bin(:|$)" ]]; then + export PATH="${HOME}/.rvm/bin:${PATH}" + fi source "${HOME}/.rvm/scripts/rvm" fi