使用Expect时如何发送存储在文件中的命令

时间:2015-09-23 13:56:38

标签: bash shell unix while-loop expect

我正在编写一个脚本,最终将在交换机上执行命令列表(通过SSH)。这些命令存储在一个文件中,命令数量会有所不同

但是,我不确定如何使用Expect完成此操作。我知道Expect可以使用while循环,但我找不到一个明确的例子。有人可以帮忙吗?

/usr/bin/expect <<EOD
spawn ssh -o StrictHostKeyChecking=no admin@$switch
expect "*Enter password for admin\:"
send "password\r"
expect "*#"
send "????"

应该有一个while循环,它从一个名为“commands”的文件中逐行读取,看起来像这个

command 1
command 2
command 3
...

1 个答案:

答案 0 :(得分:0)

Extreme Networks XOS有一个XML API。您可以使用它来执行任意命令。请参阅ExtremeXOS XML API Developer Guide页上列出的support documentation

通过期望脚本化CLI来管理交换机通常不稳定且容易出错,我建议您尽可能避免这样做。