我可以在.bashrc中导出两次PATH吗?

时间:2014-03-20 01:35:52

标签: bash heroku-toolbelt aws-cli

我正在运行Ubuntu 12.04并尝试使用Heroku CLI以及新下载的AWS Elastic Beanstalk CLI工具。

我的.bashrc中已经有了这段代码:

### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"

我也想导出这个:

#for Elastic Beanstalk - madebyian
export PATH=$PATH:/opt/AWS-ElasticBeanstalk-CLI-2.6.0/eb/linux/python3/

如何获取CLI工具和/或我的语法EDIT有什么问题:[如果有的话]?

1 个答案:

答案 0 :(得分:14)

你可以根据需要多次导出它,它没有任何区别。

此上下文中的所有export都会执行(除了由=更改变量本身之外)是标记变量,以便将其导出到将来命令的环境中。

您可以根据需要标记。两个命令的效果:

export PATH="/usr/local/heroku/bin:$PATH"
export PATH=$PATH:/opt/AWS-ElasticBeanstalk-CLI-2.6.0/eb/linux/python3/

PATH标记为导出变量(因为您通常希望继承您的路径,所以可能已经这样做了)并将其设置为:

/usr/local/heroku/bin:$PATH:/opt/AWS-ElasticBeanstalk-CLI-2.6.0/eb/linux/python3/

其中$PATH执行这些命令之前的路径。

唯一需要注意的是订购。例如,如果/usr/local/heroku/bin包含一个名为ls的可执行程序,那么如果您尝试获取目录列表,这可能会让您感到困难。出于这个原因,我倾向于只将目录添加到路径的 end

或者,您可以通过提供别名或函数来减少订单的永久性,该别名或函数仅为当前会话更改Heroku首选路径的路径。


请注意,bash运行的文件是complex matter.bashrc是针对交互式非登录shell运行的,因此可能无法在所有情况下运行(我,对于一个,通过在.bashrc结束时调用.bash_profile来解决此问题,尽管有些人可能会对此感到畏缩。

您最好不要在.bash_profile设置(和导出)路径。


而且,如果你正在做的事情有问题(你的语法似乎很好但是由于缺乏信息可能还有其他问题我们无法辨别),你应该执行以下步骤:

  • echo $PATH在每个export命令之前和之后查看是否有东西填满。
  • 确保路径中的每个组件实际上存在(即,那里有正确的目录)。