执行时出现Shell脚本错误

时间:2014-08-21 21:37:29

标签: shell

我编写了一个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

2 个答案:

答案 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 ]