如何捕获0号出口并回显"勾选"

时间:2016-08-10 21:03:09

标签: bash ubuntu exit

我试图从我的深度中找出一些东西,而且在功能上完全没必要。我还在整理Ubuntu,更不用说像bash这样的脚本语言了。我已经完成了一些C和Java,但它并没有出现我可以用这种方式编写脚本。

我的计划是编辑~/.bashrc以包含基于我在http://www.linuxcommand.org/wss0150.php找到的内容的C脚本,更改退出0的值及其包含的消息,但我很快发现{ {1}}特别关注其语言。

所以,由于我的名字几乎没有bash经验,有人可以解释我如何捕获出口0并回显一个复选标记,作为新行还是在输入命令的末尾?这完全是为了我作为一个不熟悉界面的新Linux用户。

1 个答案:

答案 0 :(得分:0)

您可以在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"

这是它的样子:

enter image description here