我使用的是 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 手册部分以了解有关此主题的更多信息。