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和color都能正常工作?
\[
是\1
和\[
是\2
。那些对应于某些readline的RL_PROMPT_{START,END}_IGNORE
东西,要求它在计算屏幕上的提示长度时忽略字节。请参阅lists.gnu.org/archive/html/bug-bash/2015-08/msg00027.html。