免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3388 | 回复: 0
打印 上一主题 下一主题

[原创]终端互聊的脚本(模访icq) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-03 12:28 |只看该作者 |倒序浏览
做了个模访icq的脚本来玩玩,建一个icq用户,考入icq.sh,此用户必须要有系统命令icq的授权。再用户目录下建用户表user.dat ,格式为每行三列: 序号  TTY号  网点名
还有很多地方需要改进,请各位高手多出手啊,谢谢!

user.dat:

1  ttyp0 乐山
2  ttyp1 沙湾
3  ttyp2 现业   
4  ttyp3 太平



icq.sh

  1. #/bin/ksh
  2. #终端聊天shell V050817
  3. #修正改进 V050818
  4. trap 'tput sgr0 ; rm $HOME/talk.temp $HOME/icq.tmp 2>/dev/null ; clear ; exit 0 ' 0 1 3 9 15
  5. trap '' 2
  6. tput bold
  7. clear
  8. icqname="icq"

  9. test -e $HOME/user.dat || { echo "\n        用户配置表 user.dat 不存在\n\n        请联系管理人员解决 ^_^ " ; read ; exit 0 ; }

  10. metty=`tty|awk -F"/" '{print $3}'`

  11. if [ -e $HOME/icq.tmp ]
  12. then
  13. me=`awk '{print $3}' $HOME/icq.tmp`
  14. if [ "$metty" = "$me" ]
  15. then
  16. yourtty=`awk '{print $2}' $HOME/icq.tmp`
  17. yourname=`awk '{ if ($2=="'$yourtty'") print $3}' $HOME/user.dat`   
  18. mename=`awk '{if ($2=="'metty'") print $3}' $HOME/user.dat`
  19. mexh=`awk '{if ($2=="'metty'") print $1}' $HOME/user.dat`
  20. clear ; mesg -y ; echo "\n        你正与 ${yourname} 聊天\n "
  21. echo "\n        ${mename} 正与你聊天,请选择 ${mexh} 与之对聊\n" >/dev/$yourtty
  22. /tcb/bin/asroot write $icqname $yourtty ; exit 0
  23. fi
  24. fi

  25. while :
  26. do
  27. clear
  28. who | awk '{print $1,$2}' >$HOME/talk.temp
  29. sed '/'"$metty"'/d;/^#/d' $HOME/user.dat |awk 'BEGIN{printf("\n%-5s%-10s%-16s\n"),"序号","TTY","用户名"} \
  30. {printf("%-5s%-10s%-16s\n"),$1,$2,$3}'

  31. echo -n  "\n        请输入对方的序号(q键退出程序):   "
  32. read xh
  33. test "$xh" = "q" -o "$xh" = "Q" && exit 0   
  34. yourtty=`awk '{if ($1=="'$xh'") print $2 }' $HOME/user.dat 2>/dev/null`
  35. test -z "$yourtty" && { echo "\n       $xh 未配置TTY\n" ; read ; continue ; }

  36. ut=`awk '{if ($2=="'$yourtty'") print $2}' $HOME/talk.temp 2>/dev/null`
  37. test -z "$ut" && { echo "\n       ${ut} 终端未登陆\n" ; read ; echo $icqname $metty $yourtty > $HOME/icq.tmp ; continue ; }

  38. yn=`awk '{if ($1=="'$icqname'" && $2=="'$ut'") print $1,$2}' $HOME/talk.temp 2>/dev/null`
  39. test -z "$yn" && { echo "\n        $icqname 用户未在 $ut 终端上登陆\n" ; read ; \
  40. echo $icqname $metty $yourtty > $HOME/icq.tmp ; continue ;  } || break
  41. done
  42. mesg -y
  43. clear
  44. echo $icqname $metty $yourtty > $HOME/icq.tmp
  45. yourname=`awk '{if ($2=="'$ut'") print $3 }' $HOME/user.dat`
  46. mename=`awk '{if ($2=="'$metty'") print $3 }' $HOME/user.dat`
  47. mexh=`awk '{if ($2=="'$metty'") print $1 }' $HOME/user.dat`
  48. echo "\n        你正与 ${yourname} 聊天\n"
  49. echo "\n        你正与 ${mename} 聊天\n        请选择 ${mexh} 与之对聊\n" >/dev/$yourtty
  50. /tcb/bin/asroot write $icqname $yourtty
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP