题目要求:
编写一个脚本,显示当天日期,查找给定的某用户是否在系统中工作。如果在系统中,就发一个问候给他。
题目代码:
#!/bin/bash
echo `date +'%Y-%M-%D %H:%M:%S' `
if [ $# -eq 0 ];then
echo "no input!!"
exit 1
fi
until [ "$#" -eq 0 ]
do
who | grep '\b'$1'\b' > /dev/null
if [ "$?" = 0 ];then
write $1
fi
shift
done
exit 0
代码中$#保存了输入参数个数的环境变量,$n(n=1,2,..)是保存输入参数的位置参数。判断用户是否登录用了 '\b'$1'\b',\b是单词锁定符,如\broot\b就是指匹配单词root。
输入 # chmod +x ./文件名(一般保存为*.sh)使文件变为可执行文件,执行。
如给自己发一个信息:
后言:最近在学习linux shell程序设计,发上来只是为了开始我的博客之路,不积跬步,无以至千里。
当学习笔记吧,多多指点。
参考答案:
Until who | grep –w “$1”
Do
sleep 20
Done
For a in `who | grep –w “$1” | awk {‘print $2’}`
Do
echo “hello”>/dev/$a
Done
Exit 0
echo 信息 > /dev/终端名称用法如图:
来源:oschina
链接:https://my.oschina.net/u/922237/blog/96203