tutorial orden example encontró ejemplos linux shell scripting expect

linux - example - spawn no se encontró la orden



¿Cómo devolver el código de salida del proceso generado en la secuencia de comandos Expect? (1)

Ya estás esperando el eof al final de tu ciclo, solo necesitas usar wait y catch el resultado:

spawn true expect eof catch wait result exit [lindex $result 3]

Sale con 0.

spawn false expect eof catch wait result exit [lindex $result 3]

Salidas con 1.

Yo uso esperar para ejecutar scripts de prueba. Las pruebas devuelven el éxito / fracaso a través del código de salida. Pero espera volver código de salida equivalente. ¿Cómo hacer esperar un estado de salida adecuado?

Mis pruebas son scripts SQL ejecutados con psql (procesador de comandos postgresql). Dado que psql no permite especificar la contraseña de la base de datos como un parámetro de la línea de comandos, espere que los scripts lo hagan.

Por lo tanto, mi guión de espera 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 }