加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 在特定目录中设置环境变量

发布时间:2020-12-13 19:22:37 所属栏目:Linux 来源:网络整理
导读:这是一个.bashrc问题. 我想在.rvmrc这样的特定目录中为.bashrc设置“export FOO = bar”. 我在下面试过. $touch ~/foo/.bashrc$echo 'export RAILS_ENV=development' ~/foo/.bashrc$cd foo/$env|grep RAILS_ENV 但在这种情况下,RAILS_ENV不会被设置. 如果我

这是一个.bashrc问题.
我想在.rvmrc这样的特定目录中为.bashrc设置“export FOO = bar”.

我在下面试过.

$touch ~/foo/.bashrc
$echo 'export RAILS_ENV=development' >> ~/foo/.bashrc
$cd foo/
$env|grep RAILS_ENV

但在这种情况下,RAILS_ENV不会被设置.

如果我设置为.rvmrc而不是.bashrc,它会通过!但是设置为.bashrc是更好的方法,因为我不需要安装rvm环境.

有解决方案吗

最佳答案
在你的bashrc中设置:

PROMPT_COMMAND='[[ $PWD == "/foo/bar/" ]] && export FOO=BAR || unset FOO'

PROMPT_COMMAND变量的内容将在每次重写提示时执行(在实际写入之前)上面的命令检查$PWD变量(它保存shell的当前工作目录)对“/ foo / bar”如果它匹配它导出你的变量,如果没有,那么变量是未设置的.

例如

peteches@yog-sothoth$PROMPT_COMMAND='[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO'
peteches@yog-sothoth$pwd
/home/peteches
peteches@yog-sothoth$cd test
peteches@yog-sothoth$pwd
/home/peteches/test
peteches@yog-sothoth$env | grep FOO
6:FOO=BAR
73:PROMPT_COMMAND=[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO
peteches@yog-sothoth$cd ../
peteches@yog-sothoth$pwd
/home/peteches
peteches@yog-sothoth$env | grep FOO
72:PROMPT_COMMAND=[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO
peteches@yog-sothoth$

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读