如何在 Bash 提示符中使用这些红色和绿色箭头符号?
更新 1
这是我的.bashrc
文件
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[\033[00m\]\
[\033[01;34m\]→ \w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}→ \w\$ '
fi
unset color_prompt force_color_prompt
我希望这个箭头的颜色与@dessert 之前回答的一样(对于错误和正确的命令变为红色和绿色)
答案1
您可以使用bash
'sPROMPT_COMMAND
来运行构建提示的函数,例如:
PROMPT_COMMAND=build_prompt
build_prompt() {
EXIT=$? # save exit code of last command
red='\[\e[0;31m\]' # colors
green='\[\e[0;32m\]'
cyan='\[\e[1;36m\]'
reset='\[\e[0m\]'
PS1='${debian_chroot:+($debian_chroot)}' # begin prompt
if [ $EXIT != 0 ]; then # add arrow color dependent on exit code
PS1+="$red"
else
PS1+="$green"
fi
PS1+="→$reset $cyan\w$reset \\$ " # construct rest of prompt
}
将此代码添加到您的~/.bashrc
文件中,然后打开一个新终端或. ~/.bashrc
在现有终端中运行以使更改生效。请注意,我\$
在末尾添加了通常的内容,如果您是 root $
,这将正常打印#
,从而防止您在不知情的情况下以 root 身份运行命令。该false
命令是测试非零退出代码变体的好方法:
如果你对 prompt 主题感兴趣,你一定要看看 shell zsh
(package zsh
),它有一个著名的配置框架哦我的天啊独自一人超过一百个主题。此外还有许多其他可用的插件,例如Spaceship ZSH 提示符。
链接
答案2
如果有人想在箭头之前显示虚拟环境提示:
build_prompt() {
EXIT=$?
red='\[\e[1;31m\]'
green='\[\e[1;32m\]'
blue='\[\e[1;34m\]'
cyan='\[\e[1;36m\]'
reset='\[\e[0m\]'
PS1='${debian_chroot:+($debian_chroot)}'
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
elif [ "$VIRTUAL_ENV" != "" ]; then
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
if [ $EXIT != 0 ]; then
PS1+="$red"
else
PS1+="$green"
fi
fi
PS1+="→$reset $cyan\w$reset \\$ "
export PS1
}
PROMPT_COMMAND=build_prompt
这是当前帖子和以下帖子的混合:为什么 virtualenv 没有设置我的终端提示?