이것은 작동합니다 bash
( parse_git_branch
정의 된 함수입니다)
export PS1="\$(parse_git_branch)"
그러나에서 동등한 것을 알아낼 수는 없습니다 zsh
.
참고 : 내가 할 경우
PROMPT="$(parse_git_branch)"
작동하는 것처럼 보이지만 실제로 프롬프트를 설정할 때 명령을 실행하고 있습니다.
답변
당신은 포함해야합니다
setopt PROMPT_SUBST
당신에 .zshrc
, man zshall
에 대해 설명 PROMPT 확장 섹션 :
PROMPT_SUBST 옵션을 설정하면 프롬프트 문자열에 먼저 매개 변수 확장, 명령 대체 및 산술 확장이 적용됩니다.
답변
실제로 문제는 설정이 아니라 PROMPT_SUBST
스크립트에서 PROMPT
변수 를 설정할 때 함수를 강제로 큰 따옴표로 묶는 것 입니다. 작은 따옴표를 사용해야한다는 프롬프트가 계산 될 때만 평가를 원합니다.
답변
아키라가 말했듯이 프롬프트 subst를 사용해야합니다. 이것은 내 초기 코드입니다 (여전히 작업 중).
setopt PROMPT_SUBST
PROMPT='$(parse_git_branch)'
또는 더 나은
setopt PROMPT_SUBST
PROMPT='[$PR_MAGENTA%n$PR_NO_COLOR@$PR_GREEN%U%m%u$PR_NO_COLOR:$PR_RED%2c$PR_NO_COLOR]$(parse_git_branch) %(!.#.$)'