4

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

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

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

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

4

3 回答 3

4

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

$(command)

或带反引号

`command`

第一个变体是首选的变体。

您可以在此处阅读有关命令替换的更多信息。

于 2012-05-07T19:55:11.607 回答
3

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

cnicutar@lemon:~$ os=$(uname)
cnicutar@lemon:~$ echo $os
Linux
于 2012-05-07T19:50:19.483 回答
1

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

echo $(date)

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

查看bash手册页以获取更多详细信息。

于 2012-05-07T19:50:28.573 回答