Можно попытаться Получить Вещи GNOME. Это - диспетчер задач, который поддерживает задачи организации в дереве (т.е. задачи могут иметь несколько подзадач, и каждая подзадача может иметь несколько других подзадач, и так далее). Это доступно в Ubuntu (взгляд здесь), и поддержки, отмечающие задачу, как сделано с ctrl+d сочетанием клавиш (для других сочетаний клавиш, смотрят здесь).
Я нашел ответ на askubuntu.com. @qeirha упомянул, что необходимо сказать удару, что последовательность символов не должна считаться в продолжительность подсказки, и Вы делаете это путем включения его в \[
\]
. На основе примера, если, вот одно решение:
red=$(tput setaf 1)
reset=$(tput sgr0)
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1='$(exit_code=$?; [[ $exit_code -eq 0 ]] || printf %s \[$red\] $exit_code \[$reset\] " ")$ '
PS1='$(exit_code=$?; [[ $exit_code -eq 0 ]] || printf %s \[$(tput setaf 1)\] $exit_code \[$(tput sgr0)\] " ")$ '
(Извините, никакое объяснение здесь. Посмотрите, Как настроить PS1 правильно? или любой другой вопрос о быстром расчете длины выходит и \[
..\]
.)
\[...\]
хорошо работает, пока можно поместить весь код, Вы хотите генерировать свою подсказку в единственной строке. Однако, если Вы хотите разделить свой код на небольшие функции, Вы приезжаете в точку, куда Вы не можете поместить запуск и конечные скобки в той же строке/функции. И это повреждается, строка переносятся. Если Вы не обращаетесь к использованию PROMPT_COMMAND
повторно вычислить Ваш PS1
при каждой подсказке.
– Tonin
19.12.2013, 22:58
Подробно останавливание @manatwork отвечает, но сохраняя Ваш код, разделяющий PS1
вычислите в различных функциях, можно записать подсказке следующий путь:
set_exit_code() {
exit_code=$?
[[ $exit_code -eq 0 ]] || printf "\[$(tput setaf 1)\] $exit_code \[$(tput sgr0)\] "
}
set_bash_prompt() {
PS1="$(set_exit_code)$ " # with double quotes!
}
PROMPT_COMMAND=set_bash_prompt
Двойные кавычки обязательны оба при установке PS1
и при использовании printf
в функции.
.bashrc
- не помещайте код в отдельный файл и вызов это.
– starbeamrainbowlabs
14.01.2016, 10:03
PS1
код, почему я не видел что один? – l0b0 19.12.2013, 23:05