我试过
出口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 文件名中添加空格是愚蠢的。