我是linux的新手。我看到一个bash命令(即使是正确的术语?)在提示符下设置JAVA_HOME
环境变量:
export JAVA_HOME =$(readlink -f /usr/bin/java |sed "s:bin/java::")
我知道$()
内的命令是什么。但是$()
是什么?如果我不包括它,它就会失败。
显然谷歌搜索$()
效果不佳。
答案 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。