2013-06-25 70 views
0

我有一个bash脚本来为我设置工作环境,sym将文件链接到主目录中的相应位置。如果`pwd -P`包含文件夹名称和空格,bash脚本将失败

下面的代码工作时,其绝对路径不包括在他们的名字空间中的任何文件夹:

CURRENTDIR=`pwd -P` 
    function make_sym_link { ln -s $CURRENTDIR/$1 $HOME/.$1; } 
    for FILE in janus irbrc gvimrc vimrc.after vimrc.before 
    do 
     make_sym_link $FILE 
    done 

我猜它是与该路径是如何不被有空间时可以正确逃脱。

一个例子的工作路径是: User/stuartnelson3/Desktop/dotfiles

虽然我有一个路径是行不通的: User/stuartnelson3/Google\ Drive/dotfiles (我加了\

这是问题?我能做些什么来解决这个问题?

+0

'ln -s a b c'表示'ln -s a b'和命令'c',而不是文件'a b'。所以如果你有空间,你必须逃避它。我认为你的主张是正确的。你可以用'\ '''使用'sed'来转义'' – Bill

回答

0

使用引号在文件名中包含空格和字符。

CURRENTDIR=`pwd -P` 
function make_sym_link { ln -s "$CURRENTDIR/$1" "$HOME/.$1"; } 
for FILE in janus irbrc gvimrc vimrc.after vimrc.before 
do 
    make_sym_link $FILE 
done 
相关问题