我不知道为什么echo $ JAVA_HOME返回空白

Abdelmajids-iMac:〜majid $ vi .profile

export PATH=/usr/local/bin:(...)
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load
RVM into a shell session *as a function*
export JAVA_HOME=$(/usr/libexec/java_home)
~

~


Abdelmajids-iMac:~ majid$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
Abdelmajids-iMac:~ majid$ vi .bash_profile
Abdelmajids-iMac:~ majid$ source .bash_profile
-bash: .bash_profile: line 1: syntax error near unexpected token `('
-bash: .bash_profile: line 1: `export PATH=/usr/local/bin:(...)'
Abdelmajids-iMac:~ majid$ echo  $JAVA_HOME

Abdelmajids-iMac:~ majid$

最佳答案

语句export JAVA_HOME=$(/usr/libexec/java_home)似乎正确; bash将对$()中的信息进行评估,如果if,则返回空白。
看起来是语法错误导致该错误无法执行,从而使JAVA_HOME为空。
$()的用法在此链接中进行了讨论。 Difference between ${} and $() in Bash

09-10 14:26