Отобразите ненулевой статус возврата в PS1

Ctrl + Сдвиг + u (это покажет подчеркнутый u) и затем значение unicode (в этом случае B0) и следуйте за ним введением.

6
28.10.2011, 23:28
3 ответа

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

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

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

PS1='%(?,,%? )%m %~ %# '
4
27.01.2020, 20:25

Лучшее, которое я могу иметь, получено

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

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

3
27.01.2020, 20:25

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

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

, а затем установить PS1, как это:

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

Оценка respear_status () Внутренний подпункл защищает $? от изменения.

2
27.01.2020, 20:25

Теги

Похожие вопросы