Utilizo esperar para ejecutar scripts de prueba. Las pruebas devuelven éxito/falla a través del código de salida. Pero espere el código de salida equivalente de retorno. ¿Cómo hacer esperar esperar el estado de salida correcto?Cómo devolver el código de salida del proceso generado en la secuencia de comandos Esperar?
Mis pruebas son scripts sql que se ejecutan con psql (procesador de mandatos postgresql). Dado que psql no permite especificar la contraseña de la base de datos como un parámetro de línea de comando, espera que las secuencias de comandos lo hagan.
lo tanto, mi esperar que la escritura se parece a:
spawn $SPAWN_CMD
expect {
-re "Enter password for new role:" {
send "$PWPROMPT\n"
exp_continue
} -re "Enter it again:" {
send "$PWPROMPT\n"
exp_continue
} -re "Password(.*)" {
send "$PASSWORD\n"
exp_continue
} -re "Password(.*):" {
send "$PASSWORD\n"
exp_continue
} eof
}
Hmm .. '[21:43:30] ~> expect <<<" spawn true; espera eof; capturar el resultado de espera; exit [lindex $ result 3] "; echo $?' produce '3' para mí –
@ sasha.sochka Si lo escribe así, $ el resultado es interpretado por el shell en lugar de esperar. Ponga la entrada entre comillas simples, o escape el $. –
Oh, mi culpa, lo tengo, gracias –