2 changed files with 35 additions and 1 deletions
@ -0,0 +1,33 @@ |
|||||||
|
#!/usr/bin/env bash |
||||||
|
# Script parses /proc/uptime to get the system uptime |
||||||
|
# and prints it in a human-readable format |
||||||
|
# This is a workaround for system where `uptime` command is taken from coreutils |
||||||
|
# where `uptime -p` is not supported |
||||||
|
|
||||||
|
if [[ -r /proc/uptime ]]; then |
||||||
|
s=$(< /proc/uptime) |
||||||
|
s=${s/.*} |
||||||
|
else |
||||||
|
echo "Error UptimeNixOS.sh: Uptime could not be determined." >&2 |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
d="$((s / 60 / 60 / 24)) days" |
||||||
|
h="$((s / 60 / 60 % 24)) hours" |
||||||
|
m="$((s / 60 % 60)) minutes" |
||||||
|
|
||||||
|
# Remove plural if < 2. |
||||||
|
((${d/ *} == 1)) && d=${d/s} |
||||||
|
((${h/ *} == 1)) && h=${h/s} |
||||||
|
((${m/ *} == 1)) && m=${m/s} |
||||||
|
|
||||||
|
# Hide empty fields. |
||||||
|
((${d/ *} == 0)) && unset d |
||||||
|
((${h/ *} == 0)) && unset h |
||||||
|
((${m/ *} == 0)) && unset m |
||||||
|
|
||||||
|
uptime=${d:+$d, }${h:+$h, }$m |
||||||
|
uptime=${uptime%', '} |
||||||
|
uptime=${uptime:-$s seconds} |
||||||
|
|
||||||
|
echo "up $uptime" |
||||||
Loading…
Reference in new issue