df命令在终端可以使用,但在bash脚本中却不能使用。

问题描述 投票:0回答:1

我在一个网站上找到了下面的代码。 我知道它是做什么的,也明白它的作用,但我不能让它正确工作。 当我在Redhat 6.10中运行它时,我得到一个错误信息:"第6行。[: :期待整数表达式"。

当我在终端的 CURRENT 变量中运行 df 代码时,它的输出是 "21"。 当我在脚本中运行 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
bash redhat df
1个回答
0
投票

你可以使用:

CURRENT=$(df / --output=pcent | tail -n1 | sed 's/%//g')
© www.soinside.com 2019 - 2024. All rights reserved.