如何在Bash脚本中使用Expect

时间:2019-08-20 17:58:20  来源:igfitidea点击:

Expect主要被认为是系统管理员不可或者缺的应用程序。我们通常在需要用户输入的情况下使用expect,例如ssh、ftp、telnet、sudo等。

在下面的bash脚本示例中,它将首先对远程主机进行ssh,然后从远程主机获取命令输出

新建一个新文件。

vi expectcmd

将下面的内容复制到文件中。

修改下面变量的值:

  • HOST=远程主机名
  • USER=用户名
  • PASS=密码
#!/bin/bash
HOST="localhost"
USER="chitti"
PASS="123"
CMD=$@
XYZ=$(expect -c "
spawn ssh $USER@$HOST
expect \"password:\"
send \"$PASS\r\"
expect \"\$\"
send \"$CMD\r\"
expect -re \"$USER.*\"
send \"logout\"
")

echo "$XYZ"

最后,保存文件。

设置权限

chmod 750 expectcmd

执行时,提供命令作为expectcmd脚本的参数

sh expectcmd "uname -a"