Днес поработих малко над новата NUKI верси. Най накрая докарах ред и до нея, а ми се ще да я пооправя малко преди да пусна последната стабилна, вероятно и финална версия. Та имах идеята да проверявам колко дни е uptime на приемник, че повечето ми правят проблеми след като са били повечко време, затова реших да правя през 10 дни един прфилактичен рестарт. Набързо драснах конвеирче дето да ми изчиства дните от останалите променливи защото резултата откомандата uptime е доста неприятен за работа
# uptime 12:13:57 up 30 days, 20:07, 1 user, load average: 0.00, 0.00, 0.00
Та въпросни ред се филтрира само от суперския конвеир 😛
uptime | awk -F'up' '{ print $2 }' | awk -F'days' '{ print $1 }'
Като ако работното време е дни резултат е цяло число с дните, а ако е часове резулататът е подобен на
neo2shyalien@neo2shyalien-box:~$ uptime | awk -F'up' '{ print $2 }' | awk -F'days' '{ print $1 }' 1:34, 5 users, load average: 0.46, 0.39, 0.41 neo2shyalien@neo2shyalien-box:~$
Заради Което минава през проверка за вида на стойноста
if echo $days | grep "^[0-9]*$" > /tmp/null then echo "Uptime in days is $days" else echo "Uptime isnt in days" fi
Просто лесно и ясно в if-а конструкцията проверява дали стоиснота съдържа само цифри с регулярни израз grep „^[0-9]*$“.