我是linux新手。我看到bash命令(是,即使是正確的術語?),設置JAVA_HOME
環境變量在系統提示:
export JAVA_HOME =$(readlink -f /usr/bin/java |sed "s:bin/java::")
我知道里面有什麼$()
命令一樣。但是什麼是$()
?如果我沒有包括它,它會失敗。
很明顯使用Google搜索$()
不能很好地工作。
我是linux新手。我看到bash命令(是,即使是正確的術語?),設置JAVA_HOME
環境變量在系統提示:
export JAVA_HOME =$(readlink -f /usr/bin/java |sed "s:bin/java::")
我知道里面有什麼$()
命令一樣。但是什麼是$()
?如果我沒有包括它,它會失敗。
很明顯使用Google搜索$()
不能很好地工作。
它用於獲取readlink
命令的輸出。例如:
[email protected]:~$ os=$(uname)
[email protected]:~$ echo $os
Linux
甜!謝謝!! –
@downvoter我的回答有問題嗎? – cnicutar
$(...)
表達式運行一個命令並替換該命令的輸出。嘗試是這樣的:
echo $(date)
因此,在這個例子中,它是(通過sed
它運行後)取readlink
命令的輸出,並將其分配給JAVA_HOME
。
查看bash
手冊頁以瞭解更多信息。
解釋很好,但例子本身與「日期」相同。 – jordanm
$()
被稱爲命令替換。它用命令本身替換命令的輸出。 基本上有兩種方法可以做到命令替換:
$(command)
或反引號
`command`
第一個變種是首選之一。
你可以閱讀更多關於命令替換here。
http://tldp.org/LDP/abs/html/commandsub.html - 它被稱爲命令替換。 – Mat