红联Linux门户
Linux帮助

求助!!!!

发布时间:2006-07-19 23:02:38来源:红联作者:alar129
#!/bin/sh
while ! test -s log.txt
do
top | grep init >> /home/xuxm/log.txt
done

我想使用以上的这段脚本,实现以下的功能:
监听init
并且将得到的信息写入log.txt中
如果发现有信息已经写入了(即log的文件大小大于0)
则不再执行

可是实际执行下来之后发现:
log.txt的内容并没有被追加
文件的大小始终为0
所以不断地循环也退不出来

如果强行kill了该脚本,然后退出、重新登陆
就能够看见该log.txt文件大小已经增长。
如果不退出并重登陆的话就看不到文件被写入了。

请教各位达人,这是为什么呢?应该如何解决呢?:mad:1
文章评论

共有 2 条评论

  1. 年年年 于 2011-07-26 09:09:09发表:

    由于top命令是一个循环,而>>则要在循环结束之后才定向输出。因此,你可以将top命令仅运行一次即可。
    #!/bin/bash
    touch /home/xuxm/log.txt
    while ! test -s log.txt
    do
    top -b -n 1| grep init >> /home/xuxm/log.txt
    done

  2. siasleo 于 2011-07-25 17:21:06发表:

    好老的铁子