Я составляю свою личную подсказку для bash и хочу добавить статус завершения предыдущей команды в конце строки подсказки.
Например
goofy@disney:~$ test "0" = "0" goofy@disney:~$ test "0" = "1" ✔️0 goofy@disney:~$ ✘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 [
G
ESC [ u
См. Экранирующий код ANSI для более подробной информации.
попробуйте \$?
\$?
Демо:
$PS1="\$?:>" 0:>test "0" = "1" 1:>test "0" = "0" 0:>test "0" = "1" 1:>