2016-01-21 45 views
0

我使用的是bash shell中导出了一些路径,如:SH文件无法很好,但命令的SH工作可以

env.sh:

export GOPATH=$GOPATH:$QBOXROOT/pili-zeus 
export PATH=$PATH:$QBOXROOT/pili-zeus/bin 

通话sh env.sh后,我调用echo $GOPATH,但没有任何输出,我再次调用export来检查导出的变量,但不包括GOPATH。但是当我将这些命令复制到shell文件中,并直接在命令行中执行它们时,它可以工作!发生?我正在使用mac。

+0

当你调用一个命令,创建一个新的子shell比继承了环境,这意味着您更改子shell的'$ PATH',而不是登录shell。设置'$ PATH'通常是你在''bashrc'中做的事情 – hgiesel

回答

0

您需要使用source env.sh才能将这些变量粘贴到您的上下文(即终端)。

“source是一个Unix命令,用于评估命令后面的文件,作为在当前上下文中执行的命令列表。”

https://en.wikipedia.org/wiki/Source_(command)