Skip to content

Instantly share code, notes, and snippets.

@ioagel
Last active July 13, 2020 14:12
Show Gist options
  • Save ioagel/7f72863b40ed3d7c3b1d60a4d1a081c1 to your computer and use it in GitHub Desktop.
Save ioagel/7f72863b40ed3d7c3b1d60a4d1a081c1 to your computer and use it in GitHub Desktop.
Outputs only the 'up' section of the uptime command in pretty form, supporting most Linux distro and Mac OS X.
#!/bin/sh
# Referenced this stackoverflow answer by John1024: https://stackoverflow.com/a/28353785/2372698
uptime -p >/dev/null 2>&1
if [ "$?" -eq 0 ]; then
# Supports most Linux distro
# when the machine is up for less than '0' minutes then
# 'uptime -p' returns ONLY 'up', so we need to set a default value
UP_SET_OR_EMPTY=$(uptime -p | awk -F 'up ' '{print $2}')
UP=${UP_SET_OR_EMPTY:-'less than a minute'}
else
# Supports Mac OS X, Debian 7, etc
UP=$(uptime | sed -E 's/^[^,]*up *//; s/mins/minutes/; s/hrs?/hours/;
s/([[:digit:]]+):0?([[:digit:]]+)/\1 hours, \2 minutes/;
s/^1 hours/1 hour/; s/ 1 hours/ 1 hour/;
s/min,/minutes,/; s/ 0 minutes,/ less than a minute,/; s/ 1 minutes/ 1 minute/;
s/ / /; s/, *[[:digit:]]* users?.*//')
fi
echo "up $UP"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment