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

     2023-03-07     132

关键词:

【中文标题】我可以在 .bashrc 中两次导出 PATH 吗?【英文标题】:Can I export PATH twice in .bashrc? 【发布时间】:2014-04-26 15:15:48 【问题描述】:

我正在运行 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:[如果有的话]?

【问题讨论】:

仅供参考,.bashrc 通常不是更新 PATH 的正确位置——当其他 shell 启动的 shell 在父级运行后调用它时,您将多次添加条目.环境更新通常属于.bash_profile,因此每次登录仅运行一次。 无论如何,“怎么了?”假设任何事情都是错误的。向我们展示您收到的 PATH,以便我们了解您认为有什么问题的原因。 【参考方案1】:

您可以根据需要多次导出它,它不会有任何区别(显然是在第一次导出之后)。

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 运行的,因此可能无法在所有情况下运行(我,一方面,通过在我的 .bash_profile 末尾调用 .bashrc 来解决这个问题,尽管有些人可能会畏缩)。

您最好在.bash_profile 中设置(并导出)路径。


而且,如果您正在做的事情有问题(您的 语法 看起来不错,但由于缺乏信息,我们可能无法识别其他问题),您应该执行以下步骤:

echo $PATH 在每个 export 命令之前和之后查看是否有什么东西塞住了它。 确保路径中的每个组件确实存在(即,您在其中拥有正确的目录)。

【讨论】:

也许对***.com/questions/415403/…进行引用会很有用 +1; > “导出到未来命令的环境” - 更准确地说,导出到任何未来当前(shell)进程的子进程的环境。这意味着预先存在的 shell 实例及其(可能未来的)子进程不会受到影响。因此,正如@CharlesDuffy 指出的那样,~/.bash_profile 是放置export 命令的最佳位置。

在php中两次调用相同的函数时出错

...07:12:15【问题描述】:我有一个名为record_list()的函数,它可以帮助我在每次刷新/访问页面时回显从数据库中提取的查询。我尝试通过回显两次来使用此功能,但不幸的是,脚本后我的所有DOM元素都被隐藏了,我无法在我的HTML中... 查看详情

Google Apps 脚本中两次调用(POST 和 GET)之间的延迟

...建一个流程来将数据报告从系统自动化到工作表;我想我可以使用他们的API、应用程序脚本并将数据导出到谷歌表格上。为此,我需要在API上运行两 查看详情

Spark:在查询中两次使用临时表?

】Spark:在查询中两次使用临时表?【英文标题】:Spark:UseTemporaryTableTwiceinQuery?【发布时间】:2016-04-2820:00:41【问题描述】:我正在努力将一组Hive查询转换为在spark上运行。到目前为止,通过创建TEMP表,我已经获得了不错的性能... 查看详情

Linux 导出路径错误。如何恢复 ~./bashrc 文件

】Linux导出路径错误。如何恢复~./bashrc文件【英文标题】:Linuxwrongpathexported.Howtorecover~./bashrcfile【发布时间】:2011-07-1817:31:27【问题描述】:虽然我尝试在~./bashrc文件上设置java路径,但我导出的文件如下:PATH=/usr/local/jdk1.6.0/binex... 查看详情

无法在 Rust 中两次读取子标准错误

】无法在Rust中两次读取子标准错误【英文标题】:UnabletoreadchildstderrtwiceinRust【发布时间】:2022-01-1605:31:15【问题描述】:由于某种原因,我第二次无法读取子进程stderr。这就是我所做的。我正在为黄瓜测试生成一个子进程。在... 查看详情

停止 SQL 在 JOIN 中两次返回相同的结果

】停止SQL在JOIN中两次返回相同的结果【英文标题】:StopSQLreturningthesameresulttwiceinaJOIN【发布时间】:2012-08-3114:53:50【问题描述】:我已经将几个表连接在一起以获取我想要的数据,但由于我是SQL新手,所以我无法弄清楚如何停止... 查看详情

如何在一个 submitHandler 中两次更新反应状态

】如何在一个submitHandler中两次更新反应状态【英文标题】:HowtoupdatereactstatetwiceinonesubmitHandler【发布时间】:2018-10-2218:00:45【问题描述】:我想在React中提交一个表单,我试图用一个submitHandler更新状态两次。第二次更新依赖于第... 查看详情

如何在 C# 中两次读取 Http 响应流?

】如何在C#中两次读取Http响应流?【英文标题】:HowcanIreadanHttpresponsestreamtwiceinC#?【发布时间】:2010-09-1323:01:47【问题描述】:我正在尝试通过以下方式读取Http响应流两次:HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();stream=re... 查看详情

开发过程中两次修改CoreData

...另一个属性。1)那么,我应该创建一个新的模型版本还是可以直接修改当前的C 查看详情

如何计算 Git 中两次提交之间更改的行数?

...单的方法来计算Git中两次提交之间更改的行数?我知道我可以做一个gitdiff并计算行数,但这似乎很乏味。我也想知道如何做到这一点,在行数中只包括我自己的提交。【问题讨论】:【参考方案1】 查看详情

如何防止在node.js中两次调用相同URL的获取

】如何防止在node.js中两次调用相同URL的获取【英文标题】:HowtopreventfetchwithsameURLbeingcalledtwiceinnode.js【发布时间】:2018-05-0110:48:10【问题描述】:我要对后端进行x次调用。其中一些指向相同的URL。我正在缓存结果。但我的问题... 查看详情

如何在 Django 中两次在查询中使用过滤器

】如何在Django中两次在查询中使用过滤器【英文标题】:howtousefilterinquerytwiceindjango【发布时间】:2022-01-1113:42:38【问题描述】:我正在尝试使用此查询过滤一些数据,get_members=PaymentDetails.objects.filter(participants_name=Participants.objects... 查看详情

在同一个查询中两次使用 UNPIVOT

】在同一个查询中两次使用UNPIVOT【英文标题】:UsingUNPIVOTtwiceinthesamequery【发布时间】:2022-01-1816:49:42【问题描述】:您好,我遇到了以下问题:我有一个大约1600行的表,其结构如下:StoreID|Target1|Target2|Target3|Date1|Date2|Date3101|X|Y|... 查看详情

VS Code 向我显示“加载工作区时出错:在工作区中两次找到模块“main.go””

】VSCode向我显示“加载工作区时出错:在工作区中两次找到模块“main.go””【英文标题】:VSCodeshowingme"Errorloadingworkspace:foundmodule"main.go"twiceintheworkspace"【发布时间】:2022-01-1717:49:23【问题描述】:我正在使用primar... 查看详情

PhoneGap 1.2 在 IOS 5 中两次触发 <a href> 的目标

】PhoneGap1.2在IOS5中两次触发<ahref>的目标【英文标题】:PhoneGap1.2firestargetof<ahref>twiceinIOS5【发布时间】:2011-12-2012:32:20【问题描述】:我正在将现有的PhoneGap应用程序升级到IOS5。这还涉及将PhoneGap从0.9.4升级到1.2现在,我... 查看详情

.bashrc 在设置 $JAVA_HOME PATH 后给出错误 [重复]

】.bashrc在设置$JAVA_HOMEPATH后给出错误[重复]【英文标题】:.bashrcgivingerroraftersettin$JAVA_HOMEPATH[duplicate]【发布时间】:2016-10-1923:17:24【问题描述】:在bashrc中设置JAVA_HOME路径后出现以下错误:bash:导出:`=/usr/local/sbin:/usr/local/bin:/usr/... 查看详情

如何在 Codeigniter 中两次加入同一个表并分配表别名?

】如何在Codeigniter中两次加入同一个表并分配表别名?【英文标题】:HowtojointhesametabletwiceandassigntablealiasesinCodeigniter?【发布时间】:2012-02-2719:49:57【问题描述】:我正在尝试使用PyroCms在Codeigniter中创建一个邮件系统。在我的邮件... 查看详情

React:如何在页面中两次渲染组件?

】React:如何在页面中两次渲染组件?【英文标题】:React:Howtorenderacomponenttwiceinapage?【发布时间】:2018-01-2605:38:50【问题描述】:我在ReactmyComponent.js中有一个组件构建ReactDOM.render(<MyComponent/>,document.getElementById(\'my-id\'));在我... 查看详情