grep 변수에서 백분율 찾기

grep 변수에서 백분율 찾기

계산된 CPU 로드를 백분율로 표시하고 싶습니다.

num2=$(uptime | grep "average:" | tr -d " " | cut -d ':' -f 5 | cut -d ',' -f 2)

percent=$((num2(*100)))
echo 'CPU percentage' $percent

내가 뭐 놓친 거 없니?

답변1

계산 percentbc.

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}'

관련 정보