您的位置:首页 > 其它

等待指定用户登录系统

2010-04-14 10:11 253 查看
今天在一本Shell书上看到了wait_for_user的函数,原函数如下:

wait_for_user () {

until who | grep “$1” > /dev/null

do

sleep ${2:-30} //这里的意思是如果参数2存在且非null,则返回$2,否则返回30

done

}

但是以上并不是完全正确的,因为 grep “$1” 是部分匹配,如果有用户zhangsan, zhang,那么$1=zhang时,zhangsan也能被匹配到,故需要稍作修改

wait_for_user () {

until who | grep “^${1} ” > /dev/null //匹配以$1开头的第一个单词知道遇到空格,注意这里不能写成$1或者{$1}, $1不会替换成参数值,{$1}替换后会类似{zhang}

do

sleep ${2:-30} //这里的意思是如果参数2存在且非null,则返回$2,否则返回30

done

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: