Expect предназначен для принятия действий на основе вывода процесса. Самое простое решение - просто позволить Expect запустить процесс, а затем выйти, когда он увидит ожидаемый результат. Например:
expect -c 'set msg {Saw "foo" on stderr. Exiting process.}
spawn /bin/bash -c "echo foo >&2; sleep 10"
expect "foo" { puts $msg; exit }'
Если порожденный процесс заканчивается нормально (например, до появления «foo»), то и сценарий Expect также выйдет.