계산된 CPU 로드를 백분율로 표시하고 싶습니다.
num2=$(uptime | grep "average:" | tr -d " " | cut -d ':' -f 5 | cut -d ',' -f 2)
percent=$((num2(*100)))
echo 'CPU percentage' $percent
내가 뭐 놓친 거 없니?
답변1
계산 percent
을 bc
.
percent=$(echo "scale=0;$num2*100" | bc)
끝 부분을 잘라내는 데 사용할 수 있는 "41.00"과 같은 숫자가 표시됩니다.
percent=${percent%.*}
답변2
당신의 num2
가치는 다음과 같습니다 0.41
. bash
정수 계산만 수행할 수 있으며 부동 소수점 계산은 수행할 수 없습니다. 그렇기 때문에 다음과 같은 오류 메시지가 표시됩니다.
bash: 0.41 * 100 : syntax error: invalid arithmetic operator (error token is ".41 * 100 ")
문장을 사용할 때 점을 제거해 보세요 tr -d
. 이는 100을 곱하는 것과 같습니다.
답변3
간단한 awk
명령을 고려해 볼 수 있습니다.
uptime | awk '/average/ {printf "CPU percentage %5.2f", $11*100}'