Как получить значение exit из предыдущей команды в моей подсказке bash? Я хочу это сделать, потому что я также хочу включить текущую ветвь git в свой путь, а также что изменения $?
Захват значения выхода предыдущей команды в приглашении bash
Я пробовал несколько вариантов в следующем запросе (например, `,` и $() вокруг присваивание RETVAL), но RETVAL пусто во всех из них:
PS1="\$(RETVAL=$(echo \$))\$(cd 124123)retval: $RETVAL"
команда кд внутри просто заполнитель для вызова текущей функции ветви мерзавца, и я вторя RetVal потом (это всегда пустую строку для проверки, если она назначена.
Другие вопросы, похожие/релевантные:
- Creating a Bash command prompt with a red $ after failure of previous command -
- Bash prompt with last exit code
Я также попытался установить RetVal в командной строке, используя примеры, как на этих страницах, но ничего не отображается в командной строке
Спасибо, что предложили этот ответ - я думаю, что у меня есть большая часть пути. Проблема в том, что путь bash не обрабатывается должным образом. Например. У меня есть: 'makeprompt() {echo =" \ n $ "}' (с правильным пробелом в коде), но он буквально устанавливает мою строку в строку «\ n $» и не ставит перед ней пустую новую строку. Конечно, мое текущее приглашение более сложное, чем это, с цветовыми кодами и функцией разбора ветвей git, но оно не подходит в этом поле комментариев. Тем не менее, это терпит неудачу. Редактировать: толкаемый возврат, а не сдвиг-возврат, и отправил комментарий раньше – cfogelberg
Специальные переменные PS1 (например, '\ $' в этом примере) должны быть указаны буквально и не могут быть эхом в makeprompt. Для линейных каналов вы можете использовать 'echo -e '\ n \ n \ n foo''. Имейте в виду, что makeprompt не может выводить трейлинг-линии, поскольку '$ (..)' лишает их. –
Я использовал много из них в моем приглашении (\ u, \ h, \ D и т. Д.), Но я смог заменить их всеми на переменные, поэтому теперь все отсортировано. Спасибо за вашу помощь :) – cfogelberg