Как сообщается xxd -p
, при вводе ↓ + возврат:
xxd -p
^[[B
1b5b420a
Клавиша со стрелкой вниз приводит к последовательности 3 символов:
\x1b
(иначе выйдите, посмотрите man ascii
), отраженный на терминале как ^[
,\x5b
, это [
,\x42
, это B
.Последний знак, \x0a
просто символ новой строки.
Так, стрелка вниз отражена на терминале как ^[[B
. В действительности это соответствует 1b5b42
преобразуйте в шестнадцатеричную систему последовательность, которая является той, на самом деле отправленной в процесс считывания.
Ваш key
переменная содержит 1b5b42
шестнадцатеричная последовательность. Проверьте его с
echo -n "$key" | xxd -p
1b5b42
Конечно, grep
сможет поймать 5b42
преобразуйте последовательность в шестнадцатеричную систему (который является [B
) ¹.
Однако, когда Вы отправляете что-то на терминал, символ ESC \x1b
интерпретируется как начало некоторой специальной escape-последовательности. Например, \x1b[31m
последовательность, которая распознана большинством терминалов и означает "использование красный основной цвет". Проверьте его сами:
echo -e 'hello \x1b[31myou'
Последовательность изменит текущий цвет, но это ничего не распечатает. Можно также проверить это:
echo -e 'hello \x1b[Byou'
и Вы будете видеть что специальная последовательность \x1b[B
интерпретируется терминалом, поскольку "спускают курсор один".
Вот почему Ваш echo $key
не покажет что-то непосредственно видимое на терминале, за исключением некоторых пустых строк.
—
1. Я не уверен почему grep
оказывается, печатает просто [B
, У меня есть некоторый другой результат на моей установке.
Существует SAT не зависящий от производителя продукта (передача SCSI/ATA) стандарт, но AFAIK это широко не поддерживается на (более дешевых) мостах.
Существует несколько поставщиков, определенная передача ATA управляет, чтобы можно было выбрать с smartctl
с -d
опция:
-d TYPE, --device=TYPE
Specify device type to one of: ata, scsi, sat[,N][+TYPE],
usbcypress[,X], usbjmicron[,x][,N], usbsunplus, marvell,
areca,N, 3ware,N, hpt,L/M/N, megaraid,N, cciss,N, auto, test
где -d sat
для совместимых устройств SAT.
Поддержка USB-устройства перечисляет устройства и их параметры командной строки, поэтому если Вы получаете контроллер USB с одним из устройств, перечисленных там, как поддерживается, у Вас есть лучшее изменение получения вещей работать.
УМНЫЙ по USB обычно или не возможно, или сделан с (мостом) определенные для поставщика команды, таким образом, нет никакого способа добиться цели. smartctl
знает о нескольких определенных микросхемах моста. Проверьте страницу справочника на список.
Это ужасно, но только 100%-й надежный способ получить доступ УМНЫЙ на диске состоит в том, чтобы отключить его от моста и прикрепить его на надлежащий хост-адаптер (как встроенный контроллер SATA или eSATA порт).
С современной абстракцией ОС настолько легко забыть, насколько отличающийся эти шины устройства хранения данных внутренне.
Нет соответствующего значения -d
.
Проблема состоит в том, что Вы используете мост массового хранения SATA↔USB, и массовое хранение USB не имеет стандартного способа запросить ATA/SATA УМНЫЕ данные. Таким образом, вместо этого контроллер имеет или никакого пути или некоторого особенного метода поставщика получить данные. smartctl
знает несколько из них; примеры включают usbjmicron
и usbsubplus
.
Так, если Ваш мост USB не является одним из тех, он знает о (и не использует точно те же определенные для поставщика команды), smartctl
просто не может считать данные.
Ваше оборудование " VID: 14CD, PID: 6600 Moai M110E / Super Top USB 2.0 в IDE " не может выполнять передачу команд ATA через USB, которые позволяют запросить состояние диска SMART, например, smartctl (или по этой ссылке hdsentinel, http: // www .hdsentinel.com / compatibility_usbharddisks.php , который дает список совместимого и недееспособного оборудования).
«Невозможно, означает, что требуемая функция отсутствует в микросхеме, поэтому никакая дополнительная информация о диске не может быть отображена. контролируется этим чипом. "(там же)
SAT
.Спасибо! – landroni 17.01.2014, 17:28sudo smartctl -i -d sat /dev/sdf
протестированный и утвержденный с корпусом JBOD: ледяное поле IB-3640SU3. – ibizaman 09.06.2014, 16:16