如何让expect脚本等到shell脚本完成

时间:2012-11-21 10:44:00

标签: wait expect

我编写了一个expect脚本,它自动从普通用户切换到oracle用户并触发用于进行数据库备份的脚本。 现在问题是我希望脚本等到其他shell脚本执行,即直到数据库备份已成功完成。 我试过谷歌搜索并找到了一些东西: 1)在expect脚本中使用wait。但我找不到如何在expect脚本中使用wait命令等待其他脚本执行。 2)在expect脚本中使用system命令来调用其他shell脚本,但是我找不到如何使用它的确切语法。这也似乎是一个c编程命令(如果是这样我就不能使用它)。

请建议一些方法让期望脚本等到子进程完成。

1 个答案:

答案 0 :(得分:0)

期待,你会做类似

的事情
set timeout -1
send "su - oracle\r"
expect $oracle_shell_prompt
send "backup_script.sh\r"
expect $oracle_shell_prompt
puts "backup script done"
send "exit\r"
expect $normal_user_prompt