在bash脚本中的$()命令

时间:2012-05-07 19:48:25

标签: bash export debian

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

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

我知道$()内的命令是什么。但是$()是什么?如果我不包括它,它就会失败。

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

3 个答案:

答案 0 :(得分:4)

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

$(command)

或使用反引号

`command`

第一个变体是首选变种。

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

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

echo $(date)

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

查看bash手册页以获取更多deatails。