代码之家  ›  专栏  ›  技术社区  ›  Kevin Meredith

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

  •  4
  • Kevin Meredith  · 技术社区  · 14 年前

    .bashrc

    echo$JAVA#HOME#打印出/usr/JAVA/。。。

    echo$(JAVA#u HOME)#引发错误“找不到JAVAŠu HOME命令”

    我担心我的make文件 $(JAVA_HOME) 从那以后就不行了 $JAVA_HOME $(爪哇语)

    $(爪哇语) 等于 ,当前设置了哪个?还有,为什么会这样?

    谢谢

    6 回复  |  直到 4 年前
        1
  •  12
  •   Quentin    14 年前

    make bash

    他们处理变量的方式不同。 $foo 是如何读取一个名为 在bash,和 $(foo) 是如何在makefile中读取它的。

        2
  •  5
  •   Matthew Slattery    14 年前

    • JAVA_HOME 是一个shell变量;假设它是用 export
    • $JAVA_HOME bash 扩展名为的shell变量的语法 .
    • , $(command) 替代 command $(JAVA_HOME) 爪哇岛之家 ,因此得到了错误。
    • make 制作 将相同名称的变量转换为相同值。(见 http://www.gnu.org/software/make/manual/make.html#Environment .)
    • 制作 制作 变量名为 爪哇岛之家 .

    Makefile 应该可以正常工作: $(爪哇语) 变量 爪哇岛之家 爪哇岛之家 (除非 生成文件 故意做了些什么来覆盖它),它有正确的价值。

        3
  •  2
  •   paulsm4    14 年前

    问:我的文件是否会被读取 那么变量呢?如果我定义$JAVA\u HOME 在.bashrc中,是否要读取我的文件 $(javau HOME)正确吗?

    A:当然可以

        4
  •  1
  •   muhmuhten    14 年前

        5
  •  1
  •   Peter Tillemans    14 年前

    $JAVA\u HOME和$(JAVA\u HOME)之间存在差异的原因很简单,make的变量语法与bash不同。

        6
  •  1
  •   user unknown    14 年前

    ... 在bash中也允许使用${foo}或${HOME},但是对于HOME,很少需要。它对链接很有用,因为在我的机器上,${HOME}OFFICE将扩展到/HOME/stefanOFFICE,但我不需要它,而$homefoffice是完全未知的;$HOME没有扩展。

    $HOME通常是连接在一起的,但是用斜杠来分隔变量就足够了,所以${HOME}/bin和$HOME/bin都可以使用。