Итак, я пытаюсь настроить запрос bash, чтобы он выглядел как
[[email protected] ~]$ _
с цветами. Мне удалось получить постоянные цвета (одинаковые цвета каждый раз, когда я вижу подсказку), но я хочу, чтобы имя пользователя ('feralin') было красным, а не зеленым, если последняя команда имела ненулевой статус выхода. Я придумал:
\e[1;33m[$(if [[ $? == 0 ]]; then echo "\e[0;31m"; else echo "\e[0;32m"; fi)\u\e[[email protected]\e[1;34m\h \e[0;35m\W\e[1;33m]$ \e[m
Однако, по моим наблюдениям, $(if ...; fi)
, кажется, оценивается один раз, когда выполняется .bashrc
, и результат заменяется навсегда после. Это делает имя всегда зеленым, даже если последний код выхода отличен от нуля (как в, echo $?
). Это то, что происходит? Или это просто что-то не так с моей подсказкой? Короче говоря, как мне получить приглашение использовать последний код выхода?