分享一下我的美化方案:
(终端:Konsole)
带有返回值显示
配置文件(.bashrc):
default user:
export PS1='\033[0m'
export PS1_SET="\033[0m"
update_prompt() {
local update_prompt_exit_status=$?
local update_prompt_col=$COLUMNS
local update_prompt_stu=''
local update_prompt_clt=''
if [ "\033[0m" != "$PS1" ]; then
PS1_SET="$PS1"
fi
if [ $update_prompt_exit_status -ne 0 ]; then
local update_prompt_stu="\033[31m${update_prompt_exit_status}\033[0m "
else
local update_prompt_stu=""
fi
if [ $update_prompt_col -gt 50 ]; then
local update_prompt_clt="[\033[0m\033[34m\033[1m$(whoami)\033[0m@${HOSTNAME}] \033[33m${PWD}\033[0m"
else
local update_prompt_clt="[\033[0m\033[34m\033[1m$(whoami)\033[0m] \033[33m${PWD##*/}\033[0m"
fi
echo -ne '\n\033[0m┌── '${update_prompt_stu}${update_prompt_clt}'\n└─\033[34m$\033[0m '
export PS1='\033[0m'
}
PROMPT_COMMAND='update_prompt'
export PS2=' \033[34m$\033[0m '
root user:
export PS1='\033[0m'
export PS1_SET="\033[0m"
update_prompt() {
local update_prompt_exit_status=$?
local update_prompt_col=$COLUMNS
local update_prompt_stu=''
local update_prompt_clt=''
if [ "\033[0m" != "$PS1" ]; then
PS1_SET="$PS1"
fi
if [ $update_prompt_exit_status -ne 0 ]; then
local update_prompt_stu="\033[31m${update_prompt_exit_status}\033[0m "
else
local update_prompt_stu=""
fi
if [ $update_prompt_col -gt 50 ]; then
local update_prompt_clt="[\033[0m\033[31m\033[1m$(whoami)\033[0m@${HOSTNAME}] \033[33m${PWD}\033[0m"
else
local update_prompt_clt="[\033[0m\033[31m\033[1m$(whoami)\033[0m] \033[33m${PWD##*/}\033[0m"
fi
echo -ne '\n\033[0m┌── '${update_prompt_stu}${update_prompt_clt}'\n└─\033[31m#\033[0m '
export PS1='\033[0m'
}
PROMPT_COMMAND='update_prompt'
export PS2=' \033[31m#\033[0m '
update:添加自适应宽度
update:修复部分bash引起的小bug
update:这次代码经过调整使用了echo代替了大部分PS1,但是PWD稍稍有点问题,包括没有"~"主目录显示