* The data available through uptime is very difficult to parse. Формат вывода этой команды как будто нарочно сделан до невозможности запутанным. Максимум, что можно с ним сделать -- обработать каскадом if-ов, что противно и неудобно.
К счастью, есть способ лучше: выполнить тот самый сисколл, которым получает время старта uptime(1), самому. Вместе с вычислением разницы с текущим временем, весь скрипт умещается в две строки:
- Код: Выделить всё
-bash-2.05b$ perl -e '`sysctl kern.boottime`=~/sec = (\d+),/; $up=time-$1; $dy=
int($up/86400); gmtime($up-$dy*86400)=~/Jan 1 (\d\d:\d\d:\d\d) 1970/; print "$
dy+$1\n"'
24+18:54:04
Готовый код с аналогичной функциональностью я гуглил часа три, но так и не нашёл.
(Для линухоидов: в фрибсде нету /proc/uptime)
* В Бельгии есть город Huy (по-русски -- Юи). По заявлению жителя этого города (юйчанина? юйца?), название звучит по французски так же, как междометие Oui.
Город с таким же названием есть в Германии. Интересно, как звучит его название по-немецки?
* на http://thedailywtf.com очередной ужастик: из-за кривизны CMS, сайт был целиком затёрт гуглботом!
Предыдущий шедевр оттуда -- преобразование байтового массива в hex пятью тысячами строк.