프롬프트에 반품 상태를 포함하고 싶습니다. (추가하기 쉽죠 '$? '
?)
그러나 나는 0이 아닌 상태(및 후행 공백)만 반환되기를 원합니다.
예:
sd ~ $ false
1 sd ~ $ true
sd ~ $
답변1
이 옵션이 켜져 있는지 확인하세요 promptvars
(기본값). 그런 다음 원하는 코드를 입력하여 PROMPT_COMMAND
프롬프트에 원하는 내용이 포함된 변수를 정의하세요.
PROMPT_COMMAND='prompt_status="$? "; if [[ $prompt_status == "0 " ]]; then prompt_status=; fi'
PS1='$prompt_status\h \w \$ '
zsh에서는 조건부 구성을 사용할 수 있습니다 PS1
(bash에는 해당 없음).
PS1='%(?,,%? )%m %~ %# '
답변2
사용할 필요가 없습니다 PROMPT_COMMAND
. 여기에서는 불필요한 문제가 발생합니다. 당신이 해야 할 일은 이 함수를 정의하는 것 뿐입니다:
prompt_status()
{
[ $? = 0 ] && return
echo -n "${?} "
}
그런 다음 PS1을 다음과 같이 설정하십시오.
shopt -s promptvars
PS1='$(prompt_status)'$PS1
prompt_status()
내부 서브쉘 평가는 $?
수정으로부터 보호됩니다.
답변3
내가 가질 수 있는 가장 좋은 것은 그것을 통해서이다
PS1='${?/#0/}'":$PS1"
구분 기호로 a를 추가했기 :
때문에 질문의 내용이 정확하지 않습니다.