Alguma chamada de sistema wait(2)
(talvez em vez disso waitpid
ou wait4
; estes podem ou não ser a mesma página de manual dependendo do sabor do unix) obtém a palavra de status de saída. Em expect
, isso é exposto por meio do procedimento wait
documentado na página expect(1)
man. Por exemplo, pode ser escrito um processo que saia com um código de saída aleatório do tipo psuedo e esse valor obtido do valor de retorno de wait
.
#!/usr/bin/env expect
spawn -noecho \
expect -c {set code [expr { int(100*rand()) }]; puts "hi $code"; exit $code}
expect -ex "hi"
expect eof
set exunt [wait -i -1]
puts $exunt
set child_exit_code [lindex $exunt end]
puts $child_exit_code
Isso quando executado deve produzir algo como
$ expect ./expectexitcode
hi 78
700 ðӶ 0 78
78
$