shell代码:
注解:
第一行,制定使用/usr/local/bin目录下的expect命令对后面的程序进行解释。
第二行,三行,四行,分别从命令行参数中获取要登录的主机ip地址,登陆密码,以及要执行的命令。
第五行,大概就是要触发这样一个事件,执行ssh $ip $cmd命令。
第6行至第11行就是expect的整个交互过程了。
如果读取到(yes/no)?提示符,就输入yes并回车,如果读取到password:提示输入密码的字符串,就输入用户登录密码(root用户)。
当然如果不是第一次登陆,以前已经登录过的话,当输入ssh $ip $cmd回车后,会直接提示输入密码也就是说会读到字符串”* password:”,这个时候会输入密码回车(send "$passwdr").
另外,如果主机不可达的话,(yes/no)?和”password:”的可能都不会出现,系统会提示:
“no route to host”退出程序。
如对本文有疑问, 点击进行留言回复!!
如何在Ubuntu 18.04(实体机)上配置OpenWRT的开发环境
网友评论