シェルスクリプトで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
Ubuntu 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