我是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