我编写了一个shell脚本,但是它给出了错误,以下是我的代码
#!/bin/bash
CPU= cat /proc/loadavg | awk '{print$1}'
if [ $CPU -gt 6 ]
then
echo "Current CPU is: $CPU" | mail -s "CPU Load is Getting High" abc@def.com
fi
执行此脚本时,会出现以下错误:
cpu_load.sh: line 3: [: -gt: unary operator expected
答案 0 :(得分:1)
也许?
CPU=$(cat /proc/loadavg | awk '{print $1}')
$(...)
被称为命令替换 - 将命令的结果分配给变量
答案 1 :(得分:0)
这意味着命令cat /proc/loadavg | awk '{print$1}'
没有返回任何内容。要解决此问题,您可以分配给变量默认值:
if [ ${CPU:-0} -gt 6 ]
或者你可以在使用之前检查变量,如:
if [ -n "$CPU" -a "$CPU" -gt 6 ]