#!/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
年年年 于 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
siasleo 于 2011-07-25 17:21:06发表:
好老的铁子