Linux
在shell腳本中減去浮點數
我正在嘗試使用 CPU 使用率在 shell 腳本中進行一些計算。哪個返回浮點數。但是當我減去這個數字時,我得到了錯誤。請參閱以下程式碼和錯誤。
程式碼
#!/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 ")
也
bash
不能ksh
執行浮點運算(ksh93
如果我沒記錯的話支持)。我建議切換到zsh
或執行外部工具,例如bc
:$ CPU_IDLE=98.67 $ echo "$CPU_IDLE" $ CPU_USAGE=$( bc <<< "100 - $CPU_IDLE" ) $ echo "$CPU_USAGE" 1.33
即使您在問題中使用了ksh標籤,腳本也以
#!/bin/sh
hashbang 開頭,它很少會給您一個 korn shell。其餘程式碼可
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