+ -
当前位置:首页 → 问答吧 → 关于SHELL编程的问题 求高手指导

关于SHELL编程的问题 求高手指导

时间:2011-02-15

来源:互联网

我们老师布置了一个练习。大致是叫我们编一个名叫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次的登陆信息,谢谢

作者: GIpanda2   发布时间: 2011-02-15

没有看懂,“模拟网络”是什么意思?
不过,大概意思似乎明白了,其实你已经把框架写出来了啊。
只需要在if结构里面加上
ssh 用户名@主机名 cmd
就行了呗。
用户是admin的时候,就是root……
如果你愿意,还可以read -s Passwd ,用expect传送密码,这样执行的时候不会提示你输入密码了。

作者: dzhxc   发布时间: 2011-02-15

我的意思是登陆后的指令怎么实现。比如我现在输入了bash rvsh -connect 用户名 主机名
屏幕上出现 "用户名@主机名>" 然后等待我输入指令因为有read
然后我输入WHO
要显示出来连接在这台主机上的所有用户。
对了。不好意思忘记说了在 admin模式下可以增加用户和主机
但这其实是一个问题。 加主机就是建立一个数组。一个由主机名构成的数组。比如加第一台arry=(name 1)或者declare arry[0]=name1 ,可增加完第一台后怎么加第二台怎么把arry[0]中的0 变成1 即 arry [1]?

作者: GIpanda2   发布时间: 2011-02-15

热门下载

更多