|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Igor Zemliansky 2:5020/400 09 Apr 2004 19:56:29 To : Eugene Grosbein Subject : Re: Вопрос по скрипт-программированию -------------------------------------------------------------------------------- Eugene Grosbein wrote. IZ>> snmpwalk выдает мне некоторую строку: IZ>> host.hrDevice.hrPrinterTable.hrPrinterEntry.hrPrinterDetectedErrorStat IZ>> e.1 = Hex: 80 Собственно, меня интересет числовое значение в конце IZ>> строки. Это значение, как не сложно догадаться, в 16-тиричном виде и IZ>> представлет собой комплексный параметр состяния принтера. То есть IZ>> каждый бит (если число перевести в двоичный формат) отвечает за свой IZ>> параметр: мало тонера, замятие бумаги, незакрытый лоток и т.п. Вопрос: IZ>> как мне HEX перевести в битовую маску? То есть из этого числа IZ>> мне нужно узнать состояние всего нескольких битов=0/1. EG> Hапример, так: EG> value=8F EG> bits=`printf "ibase=16\nobase=2\n$value\n" | bc` EG> case $bits in EG> 1???????) echo 7th bit is set;; EG> ???????0) echo zero bit is not set;; EG> esac) Спасибо. Я не думал, что все так легко :-) -------- Best regards. Igor Zemliansky automatic(at)hotmail(dot)ru -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/64881a706070.html, оценка из 5, голосов 10
|