|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 09 Apr 2004 13:51:23 To : Igor Zemliansky Subject : Re: Вопрос по скрипт-программированию --------------------------------------------------------------------------------
IZ> snmpwalk выдает мне некоторую строку:
IZ> host.hrDevice.hrPrinterTable.hrPrinterEntry.hrPrinterDetectedErrorState.1 =
IZ> Hex: 80
IZ> Собственно, меня интересет числовое значение в конце строки. Это значение,
IZ> как не сложно догадаться, в 16-тиричном виде и представлет собой
IZ> комплексный параметр состяния принтера. То есть каждый бит (если число
IZ> перевести в двоичный формат) отвечает за свой параметр: мало тонера,
IZ> замятие бумаги, незакрытый лоток и т.п. Вопрос: как мне HEX перевести в
IZ> битовую маску? То есть из этого числа мне нужно узнать состояние всего
IZ> нескольких битов=0/1.
Hапример, так:
value=8F
bits=`printf "ibase=16\nobase=2\n$value\n" | bc`
case $bits in
1???????) echo 7th bit is set;;
???????0) echo zero bit is not set;;
esac)
Eugene
--
"Люди забыли эту истину," - сказал Лис, - "но ты не забывай"
--- slrn/0.9.8.0 (FreeBSD)
* Origin: Svyaz Service JSC (2:5006/1@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/260937e2552ae.html, оценка из 5, голосов 10
|