【问题标题】:command inside $() in bash scriptbash脚本中$()内的命令
【发布时间】:2012-05-07 19:48:24
【问题描述】:

我是 Linux 新手。我看到一个 bash 命令(这甚至是正确的术语吗?)在提示符处设置 JAVA_HOME 环境变量:

export JAVA_HOME =$(readlink -f /usr/bin/java |sed "s:bin/java::")

我知道$() 里面的命令是做什么的。但是$() 是干什么用的?如果我不包含它,它就会失败。

显然谷歌搜索$() 效果不佳。

【问题讨论】:

标签: bash export debian


【解决方案1】:

$() 称为命令替换。它用命令本身替换命令的输出。 基本上有两种方法可以进行命令替换:

$(command)

或带反引号

`command`

第一个变体是首选。

您可以阅读有关命令替换的更多信息here

【讨论】:

    【解决方案2】:

    用于获取readlink 命令的输出。例如:

    cnicutar@lemon:~$ os=$(uname)
    cnicutar@lemon:~$ echo $os
    Linux
    

    【讨论】:

      【解决方案3】:

      $(...) 表达式运行命令并替换命令的输出。试试这样的:

      echo $(date)
      

      所以在本例中,它获取readlink 命令的输出并将其分配给JAVA_HOME(在通过sed 运行之后)。

      查看bash 手册页了解更多详情。

      【讨论】:

      • 解释很好,但例子本身就和“日期”一样。
      猜你喜欢
      • 2015-04-27
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 2010-11-29
      相关资源
      最近更新 更多