嘿,我正在尝试创建一个命令文件,将处理器负载显示为星号 ( *
) 并每 10 秒将其写入文件。 load = 1 = 10 个星 ( *
),如果 load > 0.5,那么它还会记录星序列之前的时间和日期。
答案1
#!/bin/bash
function doload {
load="$(uptime | rev | cut -d $' ' -f 3 | rev | tr ',' '.')" #load average over the last 1 minute
var="$(bc <<< "${load::4}*10" | cut -d '.' -f 1)"
if [[ -z "$var" ]]; then echo ""; return; fi
if (( $(echo "${load::4} > 0.5" | bc -l) )); then
echo -n "$(date) "
for ((i=0; i < "$var"; i++)); do
echo -n \*
done
echo ""
else
for ((i=0; i < "$var"; i++)); do
echo -n \*
done
echo ""
fi
}
while true; do
doload
sleep 10
done
于0.19加载它会打印你 1*
并加载1.79 17 号*