首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux -环境变量$HOME与$(HOME)

Linux -环境变量$HOME与$(HOME)
EN

Stack Overflow用户
提问于 2010-08-19 21:35:02
回答 5查看 3.4K关注 0票数 4

最近,我不得不在.bashrc中更新我的JAVA环境变量。

echo $JAVA_HOME #打印出/usr/java/.

echo $( JAVA_HOME ) #引发错误“找不到JAVA_HOME命令”

我担心使用$(JAVA_HOME)的make文件在$JAVA_HOME被识别后就不能工作,而不是$(JAVA_HOME)

如何使$(JAVA_HOME)与当前设置的$JAVA_HOME相等?还有,为什么会发生这种事?

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-19 21:38:21

make不是bash

他们对变量的处理方式不同。$foo是在bash中读取名为foo的变量的方式,$(foo)是在makefile中读取变量的方式。

票数 12
EN

Stack Overflow用户

发布于 2010-08-20 00:31:59

更确切地说:

  • JAVA_HOME是一个shell变量;假设它是用export导出的,那么环境variable.
  • $JAVA_HOME就是展开shell变量JAVA_HOME.
  • In bashbash语法,$(command)替换了command的输出-因此$(JAVA_HOME)试图运行一个名为JAVA_HOME的命令,因此您得到了错误。当make启动时,它会查看每个环境变量,并将同名的make变量设置为相同的值。(请参见.)
  • $(JAVA_HOME)是展开名为JAVA_HOME.

make变量的make语法。

因此,您的Makefile应该工作得很好:$(JAVA_HOME)扩展了make变量JAVA_HOME,该变量被设置为环境变量JAVA_HOME的值(除非Makefile有意地覆盖它),它具有正确的值。

票数 5
EN

Stack Overflow用户

发布于 2010-08-20 05:02:23

Q:那么我的make文件会读取环境变量吗?如果我在$JAVA_HOME中定义了.bashrc,我的make文件会正确读取$(JAVA_HOME)吗?

答:是的,绝对是:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3526443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档