sug*_*nan 3 linux bash ksh shell-script arithmetic
我正在尝试使用 CPU 使用率在 shell 脚本中进行一些计算。其中返回浮点数。但是当我减去这个数字时,我得到了错误。请参阅以下代码和错误。
代码
#!/bin/sh
CPU_IDLE=98.67
echo $CPU_IDLE
CPU_USAGE=$(( 100 - $CPU_IDLE ))
echo $CPU_USAGE
Run Code Online (Sandbox Code Playgroud)
错误
./poc.sh: line 14: 100 - 98.67 : syntax error: invalid arithmetic operator (error token is ".67 ")
Run Code Online (Sandbox Code Playgroud)
既bash
不能也ksh
不能执行浮点运算(ksh93
如果我没记错的话支持)。我建议切换到zsh
或运行外部工具,如bc
:
$ CPU_IDLE=98.67
$ echo "$CPU_IDLE"
$ CPU_USAGE=$( bc <<< "100 - $CPU_IDLE" )
$ echo "$CPU_USAGE"
1.33
Run Code Online (Sandbox Code Playgroud)