In the helpful shell functions department:
(Requires bc
to be installed)
load() {
local load=$(uptime |sed -E "s/^.*load averages?: //; s/,.*$//")
local uname="$(uname)"
local cpus
if [[ $1 == -q ]]; then
echo "$load"
elif [[ $1 == -i ]]; then
echo "$load + 0.5" |bc -l |cut -f1 -d.
else
case "$uname" in
Linux) cpus=$(grep -c ^processor /proc/cpuinfo);;
*BSD) cpus=$(sysctl hw.ncpu |tr -dc "0-9\n");;
*) warn "load(): assuming 1 cpu, don't know how to get the number in \"$uname\""
cpus=1;;
esac
local loadPerCPU=$(echo "scale=3; $load / $cpus" |bc -l |sed 's/^\./0./')
echo "$load ($loadPerCPU per processor ($cpus))"
fi
}