Отображать статус возврата без нуля в PS1

Я хочу включить статус возврата в мое приглашение. (Легко добавить '$? ' , Не так ли?)

Тем не менее, я хочу, чтобы возвращаемый статус (и конечное пространство) возвращался не равным нулю.

Пример:

 sd ~ $ false 1 sd ~ $ true sd ~ $ 

3 Solutions collect form web for “Отображать статус возврата без нуля в PS1”

Убедитесь, что promptvars опция promptvars (она по умолчанию). Затем поместите любой код, который вам нравится в PROMPT_COMMAND чтобы определить переменную, содержащую именно то, что вы хотите в подсказке.

 PROMPT_COMMAND='prompt_status="$? "; if [[ $prompt_status == "0 " ]]; then prompt_status=; fi' PS1='$prompt_status\h \w \$ ' 

В zsh вы можете использовать условную конструкцию в PS1 (bash не имеет эквивалента).

 PS1='%(?,,%? )%m %~ %# ' 

Лучшее, что я могу получить, получается

 PS1='${?/#0/}'":$PS1" 

где я добавил : как разделитель, так что не совсем то, что в этом вопросе.

Не требуется использовать PROMPT_COMMAND . Здесь он делает ненужные осложнения. Все, что вам нужно сделать, это определить эту функцию:

 prompt_status() { [ $? = 0 ] && return echo -n "${?} " } 

И затем установите PS1 следующим образом:

 shopt -s promptvars PS1='$(prompt_status)'$PS1 

Оценка prompt_status() внутри подоболочки защищает $? от изменения.

  • Настройка команды promt в tcsh для отображения только 3-х рабочих каталогов вместо полного пути?
  • Почему недавнее обновление Ubuntu 14.04 испортило мою подсказку PS1?
  • Доступна ли какая-либо специальная информация (например, предыдущая команда) для PROMPT_COMMAND?
  • Как автоматически вставить строку после запроса
  • Как я могу изменить приглашение bash, чтобы показать мой рабочий каталог?
  • Как остановить цвет PS1 оболочки bash для остановки в конце команды?
  • Настройка bash PS1
  • Переписывание первой строки Bash
  • как заставить команду tcsh promt показать количество заданий LSF?
  • Символ ложных @ в начале подсказки bash в Debian Jessie
  • Bash: условная новая строка в PS1 ломает typeahead
  • Длинногенерирующий запрос Bash обертывает неправильно, когда я начинаю вводить текст
  • Interesting Posts

    Могу ли я установить FreeBSD, OpenBSD, NetBSD и DragonFly на один диск?

    Неявные системные вызовы в командах UNIX

    Выравнивание данных Hexdump в определенном формате?

    Передавать аргументы с двойными кавычками из одного сценария bash в другой

    Отправка двоичных данных в get ()

    Лучшая практика для настройки формата даты и времени в масштабах всей системы?

    Как получить часть имени пути и присвоить его переменной?

    blkid возвращает больше информации, чем ожидалось

    Неверный синтаксис в sql

    Пытается сжать avi-файл, используя ffmpeg

    Удалить каталог под Cryptkeeper без доступа к его учетной записи

    Почему не работают следующие команды для ограничения трафика на порт 21 с помощью tc?

    Найдите шаблон в файле и переместите его в новые файлы по одному

    Каковы файлы и приложения, которые управляют конфигурацией клавиатуры и мертвых ключей в KDE?

    Можно загрузить все пакеты из «groupinstall», а затем запустить (yum –nogpgcheck localinstall *. Rpm)?

    Linux и Unix - лучшая ОС в мире.