도트 파일 스크립트 만들기

도트 파일 스크립트 만들기

나는 이것을 묻는다질문그게 다입니다. 여기까지는 내 스크립트의 현재 버전과 내가 원하는 작업이 있습니다. 디버깅과 테스트에 대한 조언을 구하고 있습니다. 이 작업을 더 수행할 때 아마도 -fn이 항목을 제거할 것입니다. 방해가 되기 때문입니다. 파일을 임시 디렉토리로 이동했다가 다시 되돌려야 작동할 수 있기 때문입니다.

#!/bin/bash

set -e

function makeLinks() {
    ln -sfn ~/Documents/Dotfiles/.bash_profile ~/.bash_profile\
    ln -sfn ~/Documents/Dotfiles/.gitconfig ~/.gitconfig\
    ln -sfn ~/Documents/Dotfiles/.gitignore_global ~/.gitignore_global
    source ~/.bash_profile;
    }

    read -rp "This may overwrite existing files. Are you sure? (y/n) " -n 1;
    echo "";
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        makeLinks
    fi;

답변1

확장 참고: 후행 백슬래시로 인해 세 개의 ln명령이 한 줄로 처리됩니다. 당신은 이것을 원하지 않습니다. 당신은 세 가지 다른 라인을 원합니다. 따라서 여기에 세 줄을 표시하면 다음과 같이 구문 분석됩니다.

$ echo ln -sfn ~/Documents/Dotfiles/.bash_profile ~/.bash_profile\
>     ln -sfn ~/Documents/Dotfiles/.gitconfig ~/.gitconfig\
>     ln -sfn ~/Documents/Dotfiles/.gitignore_global ~/.gitignore_global
ln -sfn /cygdrive/d/home/prateek/Documents/Dotfiles/.bash_profile /cygdrive/d/home/prateek/.bash_profile ln -sfn /cygdrive/d/home/prateek/Documents/Dotfiles/.gitconfig /cygdrive/d/home/prateek/.gitconfig ln -sfn /cygdrive/d/home/prateek/Documents/Dotfiles/.gitignore_global /cygdrive/d/home/prateek/.gitignore_global

echo한 줄에 나열된 모든 명령의 출력을 볼 수 있습니다 . 백슬래시를 제거해도 이 문제가 발생하지 않습니다. 각 명령은 개별적으로 처리됩니다.

관련 정보