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

问题描述 投票:6回答:1

我正在运行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有什么问题:[如果有]?

bash heroku-toolbelt aws-cli
1个回答
15
投票

您可以根据需要多次导出它,这没有什么区别(显然是在第一次导出之后。)>

[export在此情况下所做的所有操作(除了由于=更改变量本身之外)都标记为变量,以便将其导出到以后的命令环境中。

您可以根据需要尽可能地mark

。这两个命令的效果:
export PATH="/usr/local/heroku/bin:$PATH"
export PATH=$PATH:/opt/AWS-ElasticBeanstalk-CLI-2.6.0/eb/linux/python3/

PATH标记为导出变量(因为通常want

您要继承的路径,所以可能已经如此)并将其设置为:
/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命令之前和之后,看是否有东西塞满它。
  • 确保路径中的每个组件实际上exists(即,您在其中具有正确的目录)。
© www.soinside.com 2019 - 2024. All rights reserved.