LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 707|回复: 0

编写的shell脚本有点问题, 请指教下。

[复制链接]
发表于 2009-3-15 22:51:28 | 显示全部楼层 |阅读模式
unix环境编程 上面的一个例子。 检查所有人的登录情况

#! /bin/sh
#watchwho: watch who logs in and out

PATH=/bin:/usr/bin
new=/tmp/wwho1.$$
old=/tmp/wwho2.$$

>$old                        # create an empty file

while :
do
        who>$new
        diff $old $new
        mv $new $old
        sleep 60
done |  awk '/>/ { $1 = "in:        "; printf "%s\n", $0 }
            /</ { $1 = "out:        "; printf "%s\n", $0 }'

运行后, 总是出不了结果( 第一次运行程序, 会打印所有人的登录情况)

按说, diff $old $new 的结果会输出到标准输出, 然后经由awk判断, 然后输出结果。 但是我运行后, 就是没有结果出来。

把 mv $new $old 和 sleep 60这个注释后, 立马有结果。 但是, 我把 awk 那段改为  sed -n 's/^>/in:        /p'  后, 立马输出结果, 也是说, 在done后, 有输出流经过阿。 但是经由awk 怎么就输出不了了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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