Странный, большой пробел в bash при написании команд

#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. Большое спасибо за обратную связь. И большое спасибо за эту замечательную часть программного обеспечения. Большой поклонник!