【实验】给指定的并且已登陆系统的用户发信息

拥有回忆 提交于 2019-12-05 15:22:01

题目要求:

编写一个脚本,显示当天日期,查找给定的某用户是否在系统中工作。如果在系统中,就发一个问候给他。

题目代码:

#!/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/终端名称用法如图:


 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!