0

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

第 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

4 回答 4

1

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

于 2013-05-24T18:11:37.590 回答
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

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

于 2013-05-24T18:13:36.007 回答
1

很多管道都在...

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

将与 cut|grep|cut|tr 一样工作,而不会增加开销

于 2013-05-24T18:23:17.133 回答
0

这对我来说很好用:

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

我编辑了你的问题,你错过了fi,是错字还是错误?

于 2013-05-24T18:12:38.470 回答