2013-06-25 2 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 bc'는 '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 
관련 문제