终端,退出状态右对齐

时间:2020-04-04 08:01:14

标签: bash terminal prompt

我正在编写bash的个人提示,我想在提示行的末尾添加上一条命令的退出状态。

例如

goofy@disney:~$ test "0" = "0"
goofy@disney:~$ test "0" = "1"                         ✔️0
goofy@disney:~$                                        ✘1

有什么办法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

尝试一下 \$?

演示:

$PS1="\$?:>"
0:>test "0" = "1"
1:>test "0" = "0"
0:>test "0" = "1"
1:>

答案 1 :(得分:1)

请参见以下简单示例:

bash# cat rc
PS1="pynexj@so # \[\e[s\e[\$(( COLUMNS - 4 ))GE\$?\e[u\]"
bash# source ./rc 
pynexj@so # false                                          E0
pynexj@so # true                                           E1
pynexj@so # (exit 127)                                     E0
pynexj@so # true                                           E127
pynexj@so #                                                E0

一点解释:

  • ESC [ s-保存当前光标位置
  • ESC [ N G-将光标移到列 N
  • ESC [ u-恢复保存的光标位置

有关更多详细信息,请参见ANSI escape code