在linux下,当我们在终端敲下命令时,有时需要与之进行交互,例如终端可能会显示信息要求我们输入密码等。
如果我们想将这个过程自动化,可以使用expect工具。
首先安装expect工具,sudo apt-get insall expect-dev
下面通过2个例子看看使用方法。
下面的脚本实现了ssh到远程主机,并执行远程主机上的一个脚本"/home/ae/kill"。这里假设远程主机的root密码是1234
#! /usr/bin/expect -f
spawn ssh 10.20.210.67 "/home/ae/kill"
expect "*password:"
send "1234\r"
expect eof
下面的脚本实现了拷贝本地文件到远程主机。这里同样假设远程主机的root密码为1234
spawn scp /home/XXXX root@10.20.210.67:/XXXXX
expect "*password:"
send "1234\r"
expect eof