如何陷阱出口 0 并回显 "check mark"

How to Trap an exit 0 and echo "check mark"

我正试图找出一些超出我理解范围的东西,而且在功能上完全没有必要。我仍然在整体上弄清楚 Ubuntu,更不用说像 bash 这样的脚本语言了。我已经完成了一些 C 和 Java,但我似乎无法那样编写脚本。

我的计划是编辑 ~/.bashrc 以包含一个基于我在 http://www.linuxcommand.org/wss0150.php 找到的内容的 C 脚本,更改出口 0 的值及其包含的消息,但我很快就想通了.bashrc 对它的语言很讲究。

因此,我几乎没有 bash 经验,有人可以解释我如何捕获 exit 0 并回显复选标记,作为新行或在输入命令的末尾吗?这完全是为了我这个不熟悉界面的 Linux 新用户。

您可以在 bash 中设置 PROMPT_COMMAND 以在显示下一个提示之前执行某些操作。如果此命令包含对 PS1 的更改,那么它将在每个命令后更改您的提示。

如果最后一个命令出错,我有此设置生成红色 x 标记,成功时生成绿色 o 标记。

这是我的设置:

添加到你的~/.bashrc

# Do it this way so that long lines don't get messed up
RED_0=$(    tput setaf 1)
GREEN_0=$(  tput setaf 2)
YELLOW_0=$( tput setaf 3)
BLUE_0=$(   tput setaf 4)
PURPLE_0=$( tput setaf 5)
CYAN_0=$(   tput setaf 6)
RESET_0=$(  tput sgr0   )

RED="\[$RED_0\]"
GREEN="\[$GREEN_0\]"
YELLOW="\[$YELLOW_0\]"
BLUE="\[$BLUE_0\]"
PURPLE="\[$PURPLE_0\]"
CYAN="\[$CYAN_0\]"
RESET="\[$RESET_0\]"

CHECK="${GREEN}o"
CROSS="${RED}x"

FANCY_PROMPT="$GREEN\u$YELLOW@\h:$PURPLE\w$BLUE$ $RESET"

_prompt_command() {
    # Show   red x if last command failed
    # Show green o if last command succeeded
    case $? in
        0) PS1="$CHECK $FANCY_PROMPT" ;;
        *) PS1="$CROSS $FANCY_PROMPT" ;;
    esac
    history -a
    true
}

export PROMPT_COMMAND="_prompt_command"

这是它的样子: