终端成功和失败的条件表情符号

终端成功和失败的条件表情符号

我使用的是 Mac,我希望能够为我输入的每个成功命令显示表情符号 X,为每个导致失败的命令显示表情符号 Y。

答案1

Bash 有一些变量可以让你控制提示:

  • PROMPT_COMMAND
  • PS1
  • PS2
  • PS3
  • PS4

在这种特定场景中,只有PROMPT_COMMAND(在打印主提示之前执行的代码) 和PS1(主提示) 有帮助。

该变量?让您知道最后执行的命令的退出状态。例如:

command

if [[ "${?}" == '0' ]]; then
  echo 'OK'
else
  echo 'ERROR'
fi

因此,您只需要利用这些方便的功能:

# Using PROMPT_COMMAND
PROMPT_COMMAND='if [[ "${?}" == "0" ]]; then printf "[OK]"; else printf "[ERROR]"; fi'

# Using PS1
PS1='$(if [[ "${?}" == "0" ]]; then printf "[OK]"; else printf "[ERROR]"; fi)\$ '

两种方式都会打印类似这样的内容(假设您的初始提示是$):

[OK]$ false
[ERROR]$ true
[OK]$ 

只需将[OK]和替换[ERROR]为您想要的表情符号即可。

您可以阅读控制提示Bash 手册部分以了解有关此主题的更多信息。

相关内容