2012-05-07 144 views
4

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

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

我知道里面有什么$()命令一样。但是什么是$()?如果我没有包括它,它会失败。

很明显使用Google搜索$()不能很好地工作。

+1

http://tldp.org/LDP/abs/html/commandsub.html - 它被称为命令替换。 – Mat

回答

1

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

echo $(date) 

因此,在这个例子中,它是(通过sed它运行后)取readlink命令的输出,并将其分配给JAVA_HOME

查看bash手册页以了解更多信息。

+0

解释很好,但例子本身与“日期”相同。 – jordanm

4

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

$(command) 

或反引号

`command` 

第一个变种是首选之一。

你可以阅读更多关于命令替换here