Ela Ela - 20 days ago 5
Linux Question

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?

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