2012-05-07 192 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