Как читать из блочных специальных и символьных специальных устройств в Linux, используя сценарии оболочки bash? - PullRequest
4 голосов
/ 27 апреля 2011

Я пытаюсь читать из / dev / random и / dev / urandom и хотел бы узнать, как лучше всего читать с них и блокировать / символьные специальные устройства в целом, используя сценарии оболочки bash?

Ответы [ 2 ]

8 голосов
/ 27 апреля 2011

Используйте dd для получения блоков данных с устройства.Например, чтобы получить 8 байтов из /dev/urandom:

dd if=/dev/urandom count=1 bs=8 | ...

Затем вы можете использовать od для преобразования байтов в удобочитаемую форму:

$ dd if=/dev/urandom count=1 bs=8 2>/dev/null | od -t x1 -A n
b4 bc 2f 59 dd 55 1b 4a

Кстати, если вам нужны только случайные числа в bash, $RANDOM, вероятно, более полезен:

$ echo $RANDOM $RANDOM $RANDOM $RANDOM
3466 6521 4426 9349
1 голос
/ 27 апреля 2011

Мой совет:

dd if=/dev/urandom count=4 | ...

или, например, хвост сильно зависит от того, что вы хотите сделать с этими данными

Чтобы отформатировать как длинное целое число:

dd if=/dev/urandom bs=1 count=4|od -l
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...