Bash 获得;应为整数表达式“;错误

Bash 获得;应为整数表达式“;错误,bash,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 df-h提供“人类可读”的输出,如1G或73M。这些显然不

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

第6行:[::应为整数表达式

我可以想象括号内的代码是一个整数,但是,我看不出哪里出了问题。你能告诉我如何解决这个问题吗

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

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

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

这一个适合我:

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

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

这个对我来说很好:

[[ $(df -h | grep hda1 | cut -c40-42) -ge 80 ]]
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
我编辑了你的问题,你遗漏了
fi
,这是打字错误还是错误

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
如果您试图检查%已使用。我想,这将是一种更好的实现方法


如果您试图检查%已使用。我想,这将是一种更好的实现方法。

许多管道正在运行

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

在不增加额外开销的情况下,与切割| grep | cut | tr一样有效

许多管道正在运行

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

在不增加额外开销的情况下,将与剪切| grep | cut | tr一样有效

为什么在“df”之前使用“if”?啊..拼写错误..抱歉..修复它我无法撤消我的否决票,除非您编辑您的答案again@glennjackman:已编辑。您现在可以撤消否决票。。为什么在“df”之前加上“if”啊..拼写错误..抱歉..修复它我无法撤消我的否决票,除非你编辑你的答案again@glennjackman:已编辑。您现在可以撤消下一票..键入;在下一行键入;在下一行