【发布时间】:2020-06-04 07:39:24
【问题描述】:
我在一个网站上找到了下面的代码。我知道它的作用并理解它,但我无法让它正常工作。当我在 Redhat 6.10 中运行它时,我收到一条错误消息,指出“第 6 行:[: /: integer expression expected”。
当我从终端中的 CURRENT 变量运行 df 代码时,它会输出“21”。当它在脚本中时,它会输出“/”。
如果“/”目录超过 50%,我试图让它做的是给我发电子邮件。任何想法为什么代码的 df 部分在终端中有效,但在脚本中无效?
#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=50
if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
mail -s 'Disk Space Alert' E-MAIL REMOVED << EOF
Your root partition remaining free space is critically low. Used: $CURRENT%
EOF
fi
【问题讨论】:
-
将命令分解为越来越短的部分,在脚本中运行和运行,看看有什么不同。你也可以试试
type df,进出脚本,看看它是否使用了不同的df。 -
您可以通过选择
--output[=FIELD_LIST]来告诉df要输出什么,例如df / --output=pcent.
标签: bash redhat linux-disk-free