免费注册 查看新帖 |

Chinaunix

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

关于SHELL编程的问题 求高手指导 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-15 16:25 |只看该作者 |倒序浏览
我们老师布置了一个练习。大致是叫我们编一个名叫rvsh的script 。用来模拟网络
                大致结构是 if [$1="-connect"].....if[$2="用户名“]&&[$3="主机名“]... echo"用户名@主机名>"; read -a cmd............................. (以用户身份登陆)
                                if [$2="-admin"]................(以管理员省份登陆)
这样我们打" bash rvsh -connect 用户名 主机名 "    ,就会出现 "用户名@主机名>"然后还要求我们编写指令 ,比如再输入WHO 就可以在屏幕上列举出连在当前主机上的用户
这里想请教下怎么把登陆过的用户一个一个记录下来。比如一个数组里。。
请就以WHO 为例说明下怎么实现。比如 我打了四次 bash rvsh -connect 用户名 主机名   再打完一次bash rvsh -connect 然后输入 who 就会出现这5次的登陆信息,谢谢

论坛徽章:
0
2 [报告]
发表于 2011-02-15 16:35 |只看该作者
没有看懂,“模拟网络”是什么意思?
不过,大概意思似乎明白了,其实你已经把框架写出来了啊。
只需要在if结构里面加上
ssh 用户名@主机名 cmd
就行了呗。
用户是admin的时候,就是root……
如果你愿意,还可以read -s Passwd ,用expect传送密码,这样执行的时候不会提示你输入密码了。

论坛徽章:
0
3 [报告]
发表于 2011-02-15 16:44 |只看该作者
我的意思是登陆后的指令怎么实现。比如我现在输入了bash rvsh -connect 用户名 主机名
屏幕上出现 "用户名@主机名>" 然后等待我输入指令因为有read
然后我输入WHO
要显示出来连接在这台主机上的所有用户。
对了。不好意思忘记说了在 admin模式下可以增加用户和主机
但这其实是一个问题。 加主机就是建立一个数组。一个由主机名构成的数组。比如加第一台arry=(name 1)或者declare arry[0]=name1 ,可增加完第一台后怎么加第二台怎么把arry[0]中的0 变成1 即 arry [1]?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP