通过脚本附加到$ PATH

时间:2017-02-07 18:10:09

标签: bash path

我试图通过脚本将文件夹附加到我的PATH,但这不会在执行后更改PATH。如果我在.bash_profile中添加相同的行,请确保PATH中包含正确的文件夹。

是否有某些规则只能通过.bash_profile更改PATH环境变量?

#!/bin/bash
# add anaconda to path
if [ -d $HOME/anaconda3/bin ] ; then
     echo "Changing python to 3.5 :"
     python --version
     PATH="$PATH:$HOME/anaconda3/bin"
     python --version
fi

我想这样做的原因是有时使用python v2.7(默认),有时使用python v3.5(脚本默认使用)。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您无法通过执行子进程来修改当前进程的环境。为了保持对PATH的更改,您必须获取脚本而不是执行它。

> source enableAnaconda

如果您在.bash_profile中定义了一个函数,则该函数将在每个bash会话中定义,并且可以作为一个不同的命令调用。

enableAnaconda () {
  if [ -d "$HOME/anaconda3/bin" ] ; then
    echo "Changing python to 3.5 :"
    PATH="$HOME/anaconda3/bin:$PATH"
    python --version
  fi
}

您需要新目录添加到PATH,因为python将从头开始在路径目录中查找。