Необходимо вложить невидимые части текста запроса в \[
и \]
.
Это используется bash
для вычисления длины полной подсказки, чтобы она могла определить, где будет находиться курсор после ее печати.
Например, цветовые экранирующие коды ANSI невидимы - они меняют цвет текста, который будет выводиться позже. Их нужно вложить следующим образом:
\e[1;35m
становится \[\e[1;35m\]
В своем обновлении вы пишете, что это помогло, но есть еще одна проблема:
.
экран не будет очищен в нужных местах, если использовать историю с Вверх/Вниз.
Это еще один аспект первой проблемы: неправильно рассчитана длина текста подсказки.
Давайте посмотрим на исправленный текст приглашения из вашей ссылки:
# login and computer name
PS1='[\e[\[1;37m\]\]\u\e[\[m\]\]@\e[\[1;32m\]\]\h\e[\[m\]\]] '
# date, time
PS1=$PS1'[\e[\[1;34m\]\]\D{%Y-%m-%d} \e[\[1;35m\]\]\t\e[\[m\]\]] '
# working directory and result of last command
PS1=$PS1'\e[\[1;33m\]\]\w\e[\[m\]\] \e[\[1;31m\]\]${?#0}\e[\[m\]\]\n '
# command prompt
PS1=$PS1'\e[\[1;36m\]\]\$\e[\[m\]\] '
Проблема в том, что \[
и \]
не вложены целые цветовые экранирующие последовательности:
.
Запрос начинается с
[\e[\[1;37m\]\]...
Последовательность цветного эвакуационного запроса в этом окне имеет вид \e[1;37m
. Таким образом, экранирующий символ \e
, а [
находится снаружи. По крайней мере, [
будет засчитан как видимый. Также есть два закрывающих \]
- это может не вызвать проблемы, но, по крайней мере, сбивает с толку - они не могут быть вложены.
Правильный способ записи:
[\[\e[1;37m\]...
У других цветных экранирующих последовательностей такая же проблема.
К сожалению, большинство, если не все USB-оборудование не имеет ничего, чтобы следить за текущим потреблением через него. Максимальный выход USB-портов Вы можете найти в документации к Вашему оборудованию. Стандартный выход составляет 500 мА, но многие новые устройства предоставляют больше возможностей для таких вещей, как телефоны, mp3-плееры и столы. То же самое можно сделать и для подключенного устройства. Но это будет максимум. Он может не использовать этот ток постоянно.
Эг:
У вас есть ноутбук с максимальным значением на EACH-порту 1000 мА. (некоторый аппаратный max может быть общим для всех портов или для каждого порта) Вы подключаете телефон, который имеет максимальный оттягивающий ток 2000mA. Телефон получит максимум 1000м. Однако, когда телефон закончит зарядку, он может упасть до 100мА.
Способ, которым вы можете это сделать, это использовать коммутационный кабель для подключения амперметра к положительной линии, а затем подключить ваше устройство. Но это выходит за рамки вашего вопроса.