Bash

關於終端成功和失敗的條件表情符號

  • December 9, 2018

我正在使用 Mac,我希望能夠為我輸入的每個成功命令顯示表情符號 X,為每個導致失敗的命令顯示表情符號 Y。

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 手冊的控制提示部分以了解有關此主題的更多資訊。

引用自:https://unix.stackexchange.com/questions/486854