日期:2014-05-16  浏览次数:20645 次

菜鸟一段shell命令看不懂 求解
1 #! /bin/bash
2 until who | grep "$1"  > /dev/bull   
3 do 
4 sleep 60
5 done
6 #now ring the bell and announce the expected user
7  echo -e  '\a'
8 echo " *****$1 has just logged in*****"
9 exit 0
问题 : 第2行 和第7 行代码表示什么意思?

------解决方案--------------------
第二行是:直到"$1"($1是你紧跟着脚本的第一个参数,)成功登录前,就一直循环。

第七行是:响一声,"\a"代表"滴"声
------解决方案--------------------
我就紧跟着二楼的说,这循环语句是有问题的
1、如果找到该$1用户直接输出 *****$1 has just logged in*****";
2、如果找不到$1用户这个循环语句就一直循环一直等待,直到找到为止;

until循环语句的意思就是当{who 
------解决方案--------------------
 grep "$1"}成立则立即停止该循环,不会执行do语句,否则一直循环do语句
从以上语句看出用户$1已经登陆是没问题的,否则一直等待!