获得“预期的整数表达式”错误

时间:2013-05-24 18:04:55

标签: bash

运行脚本时收到以下错误:

  

第6行:[::预期的整数表达式

我会想象括号内的代码是一个整数,但是,我看不出它出错的地方。请告诉我如何解决这个问题?

if [ "$( df -h | grep hda1 | cut -c40-42)" -ge "80" ]; then 
  echo Subject: Production Server : Low Disk Space : Daily reporting for Server
fi

4 个答案:

答案 0 :(得分:1)

df -h提供“人类可读”输出,如1G或73M。这些显然不是整数。试着省略-h。您可能需要调整切割间距才能匹配。

答案 1 :(得分:1)

if [ "$( df -h | grep hda1 | tr -s ' '|cut -d" " -f 5 | cut -c-2)" -ge 80 ]; then echo Subject: Production Server : Low Disk Space : Daily reporting for Server

如果您尝试检查使用的%。我想,这将是一种更好的实施方式。

答案 2 :(得分:1)

很多管道正在进行......

df -h | awk '/hda1/{sub(/%/,"")}$5>80'

与cut | grep | cut | tr一样,没有额外的开销

答案 3 :(得分:0)

这个对我来说很好用:

[[ $(df -h | grep hda1 | cut -c40-42) -ge 80 ]]

我编辑了您的问题,您错过了fi,这是一个错字还是错误?