搜索
bottom↓
回复: 5

linux shell脚本关于管道的疑问

[复制链接]

出0入0汤圆

发表于 2010-3-6 23:38:03 | 显示全部楼层 |阅读模式
#!/bin/sh
until who | grep “$1” > /dev/null
do
sleep 60
done
# now ring the bell and announce the expected user.
echo -e \\a
echo “**** $1 has just logged in ****”
exit 0

怎么理解这段代码,是先
until who
do
sleep 60
done
# now ring the bell and announce the expected user.
echo -e \\a
echo “**** $1 has just logged in ****”
exit 0
然后才 | grep “$1” > /dev/null
还是每次循环一次就| grep “$1” > /dev/null一次
“$1”是传递的第一个参数,| grep “$1” > /dev/null有什么用?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入4汤圆

发表于 2010-3-7 08:50:29 | 显示全部楼层
命令who是查看都有谁登录了, 全部显示在屏幕上;
who | grep X 是指定查看X有没有登录,有的话就显示X在屏幕上;
who | grep X > /dev/null是指定查看X有没有登录,有的话也不显示在屏幕上,即查看结果输出重定向到“无底黑洞”。

每循环一次就 who | grep “$1” > /dev/null一次, 直到 “$1”登录为止。

出0入0汤圆

 楼主| 发表于 2010-3-7 09:19:58 | 显示全部楼层
谢谢,我还以为who是一个自己定义的变量
但是“$1”是谁给传递的参数进去?

出0入4汤圆

发表于 2010-3-7 10:21:13 | 显示全部楼层
假如你写的脚本文件名是 a.sh ,  那么你运行脚本时就像执行函数一样要带参数(如有必要) : a.sh XiaoWang
要学shell的话最好还是买本关于shell编程的书吧,里面什么都有。 呵呵。

出0入0汤圆

 楼主| 发表于 2010-3-7 10:26:53 | 显示全部楼层
我在看linux程序设计(英文版),这是里面的代码。
我现在要的是速成,留给我的时间不多了,谢谢!

出0入4汤圆

发表于 2010-3-7 10:33:45 | 显示全部楼层
3楼中的  a.sh 后面的XiaoWang 就是代码中的参数$1
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 19:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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