【发布时间】:2009-11-24 12:22:55
【问题描述】:
如果使用率超过 10%,以下 shell 脚本将检查磁盘空间并将变量 diskfull 更改为 1
最后一个回显总是显示0
我在 if 子句中尝试了global diskfull=1,但它不起作用。
如果磁盘消耗超过 10%,如何将变量更改为 1?
#!/bin/sh
diskfull=0
ALERT=10
df -HP | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
#echo $output
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usep -ge $ALERT ]; then
diskfull=1
exit
fi
done
echo $diskfull
【问题讨论】:
-
您确定正在执行 if 语句的主体吗?很有可能 if 被评估为 false 并且 diskfull=1 行永远不会执行。
-
感谢所有回复。我所做的是我以退出状态 1 退出了 if 子句,然后在“完成”后立即将其保存到 diskfull 变量。这种解决方法似乎奏效了。