0

我在设置环境变量时遇到问题,该变量的路径文件包含空格“”字符。

在您问之前,我已经尝试将整个路径文件括在双引号、单引号、无引号中,但使用退格键转义。

可能与编码有关吗?变量将是:

export A_MEDIA="/Users/polo/Library/Application Support/Anki2/me/collection.media"

一旦 I source ~/.bash_profile,我尝试cd $A_MEDIA(有或没有引用变量的名称)。回应是:

-bash: cd: /Users/polo/Library/Application: No such file or directory

好像 bash 不知道如何解释“应用程序”和“支持”之间的空间。它认为路径从名为Application的文件夹到名为Support的文件夹。它只是不将它们视为单个文件夹名称。有什么帮助吗?请?

4

1 回答 1

0

对我有用,所以我强烈怀疑您在问题陈述中向我们展示的内容并不是您实际在做的事情。我通常使用fish所以这显示我在启动 bash 之前设置 env var 以表明它正确继承了 var 并在内部设置和使用它bash

12:21 macbook opencv3  ~ > set -x A_MEDIA $HOME/Library/Application\ Support/Dock/
12:22 macbook opencv3  ~ > bash
running .bashrc
bash-5.0$ cd $A_MEDIA
bash: cd: too many arguments
bash-5.0$ cd "$A_MEDIA"
bash-5.0$ pwd
/Users/krader/Library/Application Support/Dock
bash-5.0$ export B_MEDIA="$HOME/Library/Application Support/Gitter"
bash-5.0$ cd $B_MEDIA
bash: cd: too many arguments
bash-5.0$ cd "$B_MEDIA"
bash-5.0$ pwd
/Users/krader/Library/Application Support/Gitter
bash-5.0$ exit

请注意,在像bash您这样的 POSIX shell 中,几乎总是应该在 var 扩展周围使用双引号,以便如果它包含空格,则扩展值不会在该空格上拆分。

于 2019-08-27T19:28:40.537 回答