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