如何在 PATH 中出现包含空格的路径?

如何在 PATH 中出现包含空格的路径?

我试过

出口TASK=$HOME/Ubuntu\ One和出口TASK="$HOME/Ubuntu One"

但都不起作用。

答案1

您遇到的问题不是定义,而是使用。您需要将使用变量的地方括在引号中。请参见以下示例:

oli@bert:~/Music$ export B="$HOME/Music/Yeah Yeah Yeahs/"
oli@bert:~/Music$ cd $B
-bash: cd: /home/oli/Music/Yeah: No such file or directory
oli@bert:~/Music$ cd "$B"
oli@bert:~/Music/Yeah Yeah Yeahs$

答案2

尝试

export TASK="$HOME/Ubuntu\ One"

在您发出的两个导出中,当您回显 $TASK 时,结果是

/home/user/Ubuntu One

这不是预期的行为,因为当你写类似的东西时

cp $TASK/file somewhere_else/

bash 将会将其扩展为

cp /home/user/Ubuntu One/file somewhere_else/

这当然是错误的。

因此,我们需要将路径放在引号中,逃离空间。

答案3

本页详细说明了此问题。最好仔细阅读http://mywiki.wooledge.org/Arguments

答案4

我没有求助于 Dropbox,而是创建了一个符号链接:

ln -s Ubuntu\ One UbuntuOne

在我的特定情况下,我想从云上的目录导入 Python 模块:

ln -s Ubuntu\ One/pythonfiles pythonfiles
export PYTHONPATH="$PYTHONPATH:$HOME/pythonfiles/"

我同意,在 Linux 文件名中添加空格是愚蠢的。

相关内容