Я могу проверить, сколько энергии USB-устройство расходует?

Необходимо вложить невидимые части текста запроса в \[ и \].
Это используется 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\]... 

У других цветных экранирующих последовательностей такая же проблема.

1
07.01.2015, 23:34
1 ответ

К сожалению, большинство, если не все USB-оборудование не имеет ничего, чтобы следить за текущим потреблением через него. Максимальный выход USB-портов Вы можете найти в документации к Вашему оборудованию. Стандартный выход составляет 500 мА, но многие новые устройства предоставляют больше возможностей для таких вещей, как телефоны, mp3-плееры и столы. То же самое можно сделать и для подключенного устройства. Но это будет максимум. Он может не использовать этот ток постоянно.

Эг:

У вас есть ноутбук с максимальным значением на EACH-порту 1000 мА. (некоторый аппаратный max может быть общим для всех портов или для каждого порта) Вы подключаете телефон, который имеет максимальный оттягивающий ток 2000mA. Телефон получит максимум 1000м. Однако, когда телефон закончит зарядку, он может упасть до 100мА.

Способ, которым вы можете это сделать, это использовать коммутационный кабель для подключения амперметра к положительной линии, а затем подключить ваше устройство. Но это выходит за рамки вашего вопроса.

1
27.01.2020, 23:51

Теги

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