当前位置: 首页 > 知识库问答 >
问题:

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

有睿
2023-03-14

我刚刚下载了Java,根据Java控制面板,可执行文件位于以下目录:/库/Internet插件/JavaAppletPlugin。插件/目录/主页/bin/java

现在,我想导出一个env变量JAVA\u HOME,如下所示:

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

但是当我打印出变量时,所有的空间都被破坏了

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

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

现在有另一个问题可以回答这个问题,但是这个答案不起作用:

>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个答案

包和泰
2023-03-14

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

乐正光誉
2023-03-14

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

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

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

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

"$JAVA_HOME" foobar.Main

某些终端可能在没有双引号的情况下工作,但您不应该依赖它。

但是,JAVA\u主页是错误的:它应该指向包含以下内容的文件夹:

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

在这种情况下,只需调用java,shell就会解析可执行文件。

严瑞
2023-03-14

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

[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ echo $BASH_VERSION
4.4.12(1)-release
[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java"
[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ echo $JAVA_HOME
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ export JAVA_HOME='/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java'
[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ echo $JAVA_HOME
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
[iahmad@web-prod-ijaz001 ~]$ 
[iahmad@web-prod-ijaz001 ~]$ 
 类似资料:
  • 问题内容: 我正在尝试从Windows命令提示符(Windows 10)运行python。因此,结果是未配置路径环境变量时的典型结果 但是,我不确定应该在path变量中设置哪个目录。 我尝试了一些变体,但没有一个起作用,包括: 他们都不起作用。 有没有人对这个特定的系统星座(Windows,anaconda)有经验。谢谢。 问题答案: 原来我错了。 解决方案是:在anaconda(以及其他实现中)

  • 问题内容: 在安装gnuplot之前,我先设置环境变量。在安装过程中,出现了问题。 我想删除环境变量。我该如何实现? 问题答案: 是您要查找的命令。

  • 问题内容: 运行将返回“ Clear Workspace = true”。如何在bash中访问它?仅供参考,它来自Jenkins Parameterized Build参数名称。似乎不起作用。 而且,詹金斯怎么能创建这个环境变量?在bash中运行显然不起作用,因为它尝试使用参数“ Workspace = true”运行“ Clear”命令。 我当然可以将作业参数名称设置为Clear_Workspa

  • 我有一个主文件,它使用(从主I do a source)一个属性文件,其中的变量指向路径。 属性文件如下所示: 问题是,我必须使用带空格的路径(我不能改变它)。 我试着用引号避开空白,但到目前为止没有解决方案。 我编辑了路径,单引号的问题是我在路径中使用了另一个变量

  • 问题内容: 我在致电时设置环境变量时遇到问题。似乎没有设置环境变量。关于如何为Python命令行调用正确设置环境变量的任何建议? 我的目标是运行一个使用从我的Python代码确定的环境变量的脚本: 但是脚本的反应就像从未设置过变量一样 这是我尝试使用Python的交互式解释器进行测试: 输出为: 我认为应该为子流程设置环境,但是显然没有。有关如何更正此问题的任何建议? 问题答案: 命令行上 环境变

  • 我正在尝试运行一个使用Docker-Compose运行的SpringBoot项目。我使用启动了它的依赖项(Redis、MongoDB和RabbitMQ 我正在构建项目并使用以下命令运行它 我总是犯这些错误: 上处理条件时出错 中的占位符“OAUTH_CLIENTID” 在docker-compose文件中,环境变量的值在environment部分中定义。 这就是application.yml的样子