如何导出终端路径上带有空格的环境变量

时间:2019-07-12 14:13:48

标签: java linux terminal

我刚刚下载了Java,根据Java控制面板,可执行文件位于以下目录中: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java

现在,我要这样导出环境变量JAVA_HOME

>export JAVA_HOME=“/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java”

但是当我打印出变量后,所有空间都被保留了

>$JAVA_HOME
-bash: “/Library/Internet: No such file or directory

如何正确将此路径导出到变量?

现在还有另一个question可以回答这个问题,但是那里的回答不起作用:

>SOME_PATH="/mnt/someProject/some path"
>$SOME_PATH
-bash: /mnt/someProject/some: No such file or directory

并在此使用其他答案:

>SOME_PATH=/mnt/someProject/some\ path
>$SOME_PATH
-bash: /mnt/someProject/some: No such file or directory

这是我的bash版本(我在macOS 10.14.5上):

>echo $BASH_VERSION
3.2.57(1)-release

3 个答案:

答案 0 :(得分:1)

单引号和双引号,一切正常:

DataContext

答案 1 :(得分:0)

您必须使用双引号或单引号:解释程序将“视为任何字符”,因此试图找到程序“/Library/Internet

export JAVA_HOME='/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java'

除了单引号和反斜杠外,您不需要使用单引号转义任何内容。

请注意,当直接使用它时,例如$JAVA_HOME foobar.Main,还需要添加双引号,因为在这种情况下,$JAVA_HOME包含空格:

"$JAVA_HOME" foobar.Main

某些终端可能没有双引号,但您不应依赖它。

但是,JAVA_HOME是错误的:它应该指向包含/bin/java的文件夹:

export JAVA_HOME="/c/Program Files/Java/jdk1.8.0_202"
export PATH="$JAVA_HOME/bin:$PATH"

在这种情况下,您只需调用Java,然后外壳程序将解析可执行文件。

答案 2 :(得分:0)

我认为您使用的引号(“)不是ASCII引号(”或')。