쉘 스크립트에서 CPU 사용량을 사용하여 몇 가지 계산을 하려고 합니다. 부동 소수점 숫자를 반환합니다. 하지만 이 숫자를 빼면 오류가 발생합니다. 아래 코드와 오류를 참조하세요.
암호
#!/bin/sh
CPU_IDLE=98.67
echo $CPU_IDLE
CPU_USAGE=$(( 100 - $CPU_IDLE ))
echo $CPU_USAGE
실수
./poc.sh: line 14: 100 - 98.67 : syntax error: invalid arithmetic operator (error token is ".67 ")
답변1
또한 부동 소수점 연산을 수행 bash
할 수 없습니다 ( 제 기억이 맞다면 지원됩니다). 다음과 같은 외부 도구 로 전환하거나 실행하는 것이 좋습니다 .ksh
ksh93
zsh
bc
$ CPU_IDLE=98.67
$ echo "$CPU_IDLE"
$ CPU_USAGE=$( bc <<< "100 - $CPU_IDLE" )
$ echo "$CPU_USAGE"
1.33
답변2
사용하더라도케시귀하의 질문에 표시된 것처럼 스크립트는 hashbang으로 시작 #!/bin/sh
하며희귀한코헨 쉘을 드려요.
나머지 코드는 ksh
우분투 14.04의 (AT&T ksh93)에서 잘 작동합니다.
$ ksh poc.sh
98.67
1.33
$ ls -lL /bin/ksh*
-rwxr-xr-x 1 root root 1509040 Jan 9 2013 /bin/ksh
-rwxr-xr-x 1 root root 1509040 Jan 9 2013 /bin/ksh93