让“导出路径”坚持下去

DMF*_*DMF 2 bash path osx-lion

我刚刚升级到 Lion 并且我是第一次使用 bash(我以前的经验是使用 csh 和 tcsh)。我遇到了意想不到的行为。一个简单的例子是:

  1. 我创建了一个包含以下命令的文件:

    echo PATH BEFORE is $PATH
    PATH=/usr/local/fortran:$PATH
    export PATH
    echo PATH AFTER is $PATH
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我打开一个终端(在 bash 中)并执行上面显示的文件。它呼应了预期的结果:

    PATH BEFORE is /usr/bin: ...
    PATH AFTER is /usr/local/fortran:/usr/bin ...
    
    Run Code Online (Sandbox Code Playgroud)
  3. 然后我输入:

    echo $PATH
    
    Run Code Online (Sandbox Code Playgroud)

    并且/usr/local/fortran不是路径的一部分。我认为导出命令会使 PATH 变得粘滞。有人可以解释为什么这没有发生吗?

小智 6

您需要获取文件的来源,以便当前 shell 可以访问导出的变量。

source script-file
echo $PATH
Run Code Online (Sandbox Code Playgroud)

……或者将export命令添加到 bash 的配置文件之一——在 OS X 中,通常是.bash_profile.