이는 요청 시 SSH 키를 추가해야 한다는 필요성에서 시작되었지만 ssh-agend
OpenSSH는 그렇게 할 수 없기 때문에 이 zsh 스크립트를 생각해 냈습니다. 하지만 알 수 없는 이유로 ssh
"before" 또는 before 를 실행하는 대신 git
이전에 실행됩니다.아무것, 심지어 빈 명령도 가능합니다.
git ssh () {
# Does the agent handle any keys?
ssh-add -l &>/dev/null
# True if last executed command (ssh-add -l) exits non-zero.
if [ $? -ne 0 ]; then
ssh-add
fi
# Execute git or ssh with all parameters, and not this function
command $0 "$@"
}
or 를 입력할 때만 실행되는 것이 아니라 모든 명령 후에 이 함수가 실행되는 이유는 무엇입니까 git
?ssh
답변1
기능을 사용해 보았는데 zsh -f
(게시하기 전에 완료했어야 했는데...) 예상대로 작동하는 것으로 나타났습니다. 다른 문제로 인해 이 문제가 발생했으므로 가능하면 질문을 닫겠습니다.
편집하다:
문제가 무엇인지, 해결 방법이 궁금하신 분들은 아래를 참고하세요.
zsh 프레임워크를 사용하고 있습니다짐vcs_info
현재 디렉토리가 git에서 사용되는지 확인하는 데 사용됩니다 . 이를 위해서는 git을 호출해야 합니다. vcs_info
기본적으로 git을 직접 호출하지 않는 것 같습니다.
그러나 Freenode의 #zsh에 대한 ft 덕분에
zstyle ':vcs_info:git:*:-all-' command =git
프레임워크를 얻은 후 ~/.zshrc
이 문제가 해결되었습니다.