曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5177|回复: 1
打印 上一主题 下一主题

until 语句

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2009-1-1 20:59:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一般格式:
until 条件
do
      命令1
      命令2
      ...
done


until 和 while 相反,它先判断条件,如果成立则退出;如果不成立则执行循环体,直到条件成立为止。

利用 until 循环可以很好的实现对延迟的命令输出进行捕获,如下代码所示:
[Bash shell] 纯文本查看 复制代码
#!/bin/sh

OUTFILE="/tmp/outfile.out"
cat /dev/null > $OUTFILE

function delay_command()
{
    sleep 3
    echo "hello outfile.out"
}

until [ -s $OUTFILE ]
do
    delay_command >> $OUTFILE    
done

more $OUTFILE

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
沙发
 楼主| 发表于 2009-1-2 19:36:48 | 只看该作者

until 语句应用举例

监控磁盘空间,代码:
#!/bin/bash
#监控磁盘分区

Partition="/dev/sda5"

LOOK_OUT=`df | grep "$Partition" | awk '{print $5}' | sed 's/%//g'`
echo $LOOK_OUT
until [ "$LOOK_OUT" -lt "10" ]
do
LOOK_OUT=`df | grep "$Partition" | awk '{print $5}' | sed 's/%//g'`

if [ "$LOOK_OUT" -lt "10" ];then
echo "Filesystem /dev/sda5 is nearly empty" | mail root
fi
sleep 3600
done
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-17 19:02 , Processed in 0.084607 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表