expect使用
expect时用与提供自动交互的工具。比如如果想要用ssh登陆服务器,每次都输入密码你觉得麻烦,那你就可以使用expect来做自动交互,这样的话就不用每次都输入密码了。
先看例子:
#!/usr/bin/expect #set timeout 20 #设置超时时间
spawn ssh root@192.168.43.131 expect "*password:" send "123\r" # expect "*#" interact
解释:
1.#!/usr/bin/expect :需要先安装软件,然后来说明用expect来执行
2.spawn ssh root@192.168.43.131 :spawn是进入expect环境后才可以执行的expect内部命令,用来执行它后面的命令。
3.expect "*password:" :也是expect的内部命令,用来解惑关键的字符串,如果有,就会立即返回下面设置的内容,如果没有就看是否设置了超时时间。
4.send "123\r":这时执行交互式动作,与手工输入密码等效,在expect截获关键字之后,它就会输入send后面的内容。
5.interact :执行完毕后把持交互状态,把控制台,这时候就可以进行你想要进行的操作了。如果没有这一句,在登陆完成之后就会退出,而不是留在远程终端上。
今天突然想起了expect,所以就重新看了一下,希望对你有帮助。
运维虐我千万遍,我对运维如初恋。