розбирання виводу команди на лексеми

не виспався, але байдуже. на bashтані буде спекотно сьогодні: зараз навчимося розбирати вивід команди uptime на лексеми і зберігати дані не в жорстко кодованих змінних, а в загальному масиві з мітками.

дилетант запитає: з розбором зрозуміло, але навіщо ці складнощі з масивами?! а припустімо, мій простенький монітор збиратиме й показуватиме сто параметрів, і зненацька знадобилося додати ще десять. за примітивного підходу для цього довелося б:
  • розібрати вивід ще кількох команд на кшталт uptime і скласти дані в десять нових змінних;
  • додати десять нових міток до шаблонів виводу;
  • додати десять нових замін до функції підстановки даних в шаблони.
перший етап — цікава задачка. другий — просто питання дизайну виводу. а третій етап — це дурна робота, і її можна повністю уникнути, якщо складати дані як іменовані поля до одного архіву. тоді функція підстановки даних за шаблоном перетворюється з величезного переліку міток і замін… на один короткий (в коді) і читабельний цикл (про це — згодом).

важливо! цей код — лише ілюстрація принципу; вивід uptime надто волатильний, щоби його так розбирати для реальної задачі — краще обчислювати з даних у /proc/uptime.

код на pastebin: