![](/img/trans.png)
[英]Without re-writing Python/Perl scripts, how would I pipe outputs together in a bash script?
[英]How can I chain together bash expect scripts?
伙计们。 我正在致力于自动化工作中的流程,该流程涉及在各种虚拟机中输入无穷无尽的命令。 这都是非常简单的东西,但它既费时又容易出现人为错误。
我偶然发现了“期望”命令,它们一开始就适合我的需要。 我有一个看起来像这样的脚本:
#!/usr/bin/expect -f
spawn ssh root@[server name]
expect "such and such"
send "thing\n"
这会重复一段时间,最终我完成了该 VM 上的工作。 我希望脚本执行的是输入退出命令,然后开始在我正在处理的本地终端中执行其他命令,如下所示:
...
expect "last part"
send "exit\n"
expect "something"
send "new commands"
或者:
...
expect "last part"
send "exit\n"
spawn ./newscript.sh
无论出于何种原因,expect 似乎都忽略了我的最后一个exit
命令。 如果有一种方法可以在一个期望脚本中进行多次生成,或者,如果有一种方法可以将脚本链接在一起,请告诉我。
做这个:
expect "last part"
send "exit\r"
expect eof ;# allow the spawned process to gracefully exit
system ./newscript.sh
从期望手册:
system
参数将args作为输入提供给 sh(1),就像它是从终端输入的命令一样。 Expect 一直等到 shell 终止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.