구성 파일의 함수(zshrc의 함수)에서 nano를 실행하면 변경 사항이 저장되지 않습니다.

구성 파일의 함수(zshrc의 함수)에서 nano를 실행하면 변경 사항이 저장되지 않습니다.

나는 zsh를 쉘로 사용하고 있으며 이것을 달성하려고 노력하고 있습니다.

내 .zshrc 파일에서 내 .zshrc를 수정하고 저장하고 다시 로드하는 기능을 갖고 싶습니다.

지금까지는 .zshrc 파일에서 다음 기능을 수행해야 합니다.

function zshrd(){
    cp $HOME/config/.zshrc $HOME/
    source $HOME/.zshrc
}

function zshed(){
    message=${1:-Automated message}
    nano $HOME/.zshrc
    git add $HOME/config/
    git commit -m $message
    zshrd
} 

zshrd를 호출할 때마다 작동합니다. 하지만 zshed에 전화할 때마다 그렇지 않습니다. nano에서 파일을 열지만 파일에 대한 변경 사항을 저장하지 않으며 아무 것도 커밋하지 않습니다. 아마도 stdin/stdout과 관련이 있을까요?

왜 그런지 아시나요? 내가 일을 "잘못된 방식"으로 하고 있다면 다른 해결책도 열려 있습니다.

감사해요!

답변1

이해가 잘 안 되지만 $HOME/.zshrc로 열고 nano몇 가지 변경 사항을 추가한 후 저장하면 수정해 주세요. 그런 다음 추가하고 커밋을 시도 $HOME/config/하지만 이 디렉터리에 변경 사항이 없으므로 커밋이 이루어지지 않습니다. 그런 다음 변경되지 않은 zshrd이전 변경 사항을 호출하고 재정의 $HOME/.zshrc합니다 .$HOME/config/.zshrc

내 생각 nano $HOME/config/.zshrc엔 스크립트를 호출해야 할 것 같아요.

그런 다음 함수는 을 변경 하고 변경 사항을 커밋한 다음 새 것으로 $HOME/config/.zshrc재정의 하고 다시 로드합니다.$HOME/.zshrc$HOME/config/.zshrc

관련 정보