Skip to content
Advertisement

When there are multiple “spawn” statements in the expect script, only the last spawn statement is executed fully

From expect script, I am calling two other shell scripts. But only the second shell script seems to get executed properly. Because the output statements of the first shell script is not seen in the screen. This is my expect script:

#!/usr/bin/expect
spawn /bin/bash test1.sh
spawn /bin/bash test2.sh
interact

Why is this happening? And what is the fix?

Advertisement

Answer

You have to wait for the first spawned process to finish:

spawn /bin/bash test1.sh
expect eof

spawn /bin/bash test2.sh
interact
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement