请教一种脚本的写法? 条件判定的

sh/bash/dash/ksh/zsh等Shell脚本
回复
abbott
帖子: 435
注册时间: 2007-07-11 22:45

请教一种脚本的写法? 条件判定的

#1

帖子 abbott » 2009-08-28 10:32

是这样的,
要求在指定的时间间隔内运行,
比如每30s 或者1min运行一次。

判定很简单,
if [ $Active != 10 ]; then
cd /tmp
rm -fr new


但是有个问题;
是关于这个“监控”结束的问题。
要求是 如果rm 指令那一行,执行一次之后,
马上结束这个每个30s 或者1min运行一次的举措。

也就是说,成功执行if下面的语句后,彻底跳出脚本。
否则依旧作每30s Or 1min一次的判定,

另, 如何指定这个脚本多少时间间隔就运行一次呢?

服务器禁止我使用 crontab
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 请教一种脚本的写法? 条件判定的

#2

帖子 eexpress » 2009-08-28 10:33

那你sleep 10算了。
● 鸣学
abbott
帖子: 435
注册时间: 2007-07-11 22:45

Re: 请教一种脚本的写法? 条件判定的

#3

帖子 abbott » 2009-08-28 10:44

sleep 10
我看看这个如何使用 先
谢谢了
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: 请教一种脚本的写法? 条件判定的

#4

帖子 xzap » 2009-08-28 13:03

while :
do
if xxx
then
xxxx
break
fi
sleep 1m
done
abbott
帖子: 435
注册时间: 2007-07-11 22:45

Re: 请教一种脚本的写法? 条件判定的

#5

帖子 abbott » 2009-08-28 13:25

xzap 写了:while :
do
if xxx
then
xxxx
break
fi
sleep 1m
done
谢谢!

我这么修改的:
#!/bin/bash
ActiveNode=`showq | egrep 'Nodes Active' | cut -f 1 -d'o' | sed 's/^[ ]*//g'`
while ((2>1));
do
if [ $ActiveNode == 121 ];
then
cd /home/user/task
qsub newfile.pbs
break
fi
sleep 1m
done

开始的时候,wihle后面不写条件,
直接这样:
while;
do
....

脚本执行的时候,提示我while,command not found。。。。。

我加上条件后,脚本可以运行。
具体效果还待检测中。。。。


测试完毕,好用!

开始的时候,sleep 1m太久了

导致我的判定条件出了问题...

现在sleep 5s 就OK 了....
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: 请教一种脚本的写法? 条件判定的

#6

帖子 xzap » 2009-08-28 16:11

while后面是冒号:阿,表示真,也就是无限循环,直到break退出
abbott
帖子: 435
注册时间: 2007-07-11 22:45

Re: 请教一种脚本的写法? 条件判定的

#7

帖子 abbott » 2009-08-28 18:34

谢谢 xzap 提醒 我也刚刚醒悟到.....
回复