GREEN="\e[1;32m"
RED="\e[1;31m"
NONE="\e[m"
get_exit_status(){
es=$?
if [ $es -eq 0 ]
then
echo -e "${GREEN}${es}${NONE}"
else
echo -e "${RED}${es}${NONE}"
fi
}
get_path(){
#dummy function
echo "PATH"
}
PROMPT_COMMAND='exitStatus=$(get_exit_status)'
다음은 올바른 exitStatus를 제공하지만 색상 변수는 확장되지 않습니다.
PS1='${RED}\h $(get_path) ${exitStatus}${NONE} '
그러나 아래 중 하나는 색상을 제공하지만 종료 상태는 업데이트되지 않습니다.
PS1="${RED}\h $(get_path) ${exitStatus}${NONE} "
이것을하는 올바른 방법은 무엇입니까? exitStatus와 색상이 모두 작동하도록 어떻게 해결할 수 있습니까?
\[
이다\1
, 그리고\[
이다\2
. 그것들RL_PROMPT_{START,END}_IGNORE
은 화면에서 프롬프트 길이를 계산할 때 바이트를 무시하도록 요청하는 일부 readline에 해당합니다 . lists.gnu.org/archive/html/bug-bash/2015-08/msg00027.html을 참조하십시오 .