#linux #bash
Вопрос:
Я добавил некоторые пользовательские параметры для персонализации своего bash, и я испытываю некоторое неожиданное поведение, поэтому я думаю, что, возможно, сделал это неправильно. В блоке кода ниже приведены пользовательские параметры:
# Custom parameters
tprompt () {
local bold=$(tput bold)
local red=$(tput setaf 1)
local green=$(tput setaf 2)
local magenta=$(tput setaf 5)
local cyan=$(tput setaf 6)
local plain=$(tput sgr0)
printf -v PS1 '%s'
'[33[1;36m]'
'u[33[1;31m]'
'@[33[1;32m]'
'h:[33[1;35m]'
'w[33[1;31m]'
'$[33[0m] '
}
tprompt
tput () {
printf '\['
command tput "$@"
printf '\]'
}
Все работает хорошо, но кажется, что он будет вести себя так, когда путь слишком длинный, как показано на рисунке ниже:
Возможно, также стоит упомянуть, что я использую ble.sh.
ИЗМЕНИТЬ: Вывод echo $SHELL
: /bin/bash
Выход из declare -p PS1
:
declare -- PS1="\[\033[1;36m\]\u\[\033[1;31m\]@\[\033[1;32m\]\h:\[\033[1;35m\]\w\[\033[1;31m\]\$\[\033[0m\] "
Комментарии:
1. Я не могу размножаться. Здесь все отлично работает. Зачем все
local bold=
переменные, если вы их не используете.2. Если я открою новый терминал в указанном выше месте, все будет в порядке. Однако, когда я нажимаю
Up
на клавиатуру (последняя используемая команда в истории), это происходит.3. не могли бы вы отключить ble. шш и попробуй?
4.
Up on the keyboard (last used command in the history), it happens
Звучит так, как будто[ ]
они отсутствуют или недействительны. Не могли бы вы ввестиdeclare -p PS1
и опубликовать выходные данные? Вы уверены , что используете bash, а не другую оболочку?5. А, ладно. Это ошибка в ble.sh. Я все исправлю.
Ответ №1:
Спасибо вам за отчет! Я автор ble.sh
книги . Это была ошибка ble.sh
в расчете координат. Я исправил это в последнем толчке. Не могли бы вы обновить, пожалуйста ble.sh
, с помощью следующей команды?
$ ble-update
Ошибка была создана в коммите 0.4.0-devel3 4fa139ad (2021-03-21) и исправлена в коммите 9badb5f (2021-06-11 сейчас!). (Я действительно заметил эту проблему в 2021-05-16 годах, но почему-то забыл ее исправить). Ошибка повлияла на версии между этими фиксациями. Все, кто использует master
ветку ble.sh
, должны обновить ее.
Комментарии:
1. Большое спасибо за обратную связь. И большое спасибо за эту замечательную часть программного обеспечения. Большой поклонник!