Automatice las entradas de script de Linux utilizando el comando esperado

El comando esperado en Linux le permite automatizar las interacciones entre scripts y programas. Cuando el script está esperando la entrada de texto, puede enviarlo cualquier tipo de respuesta. Al administrar una computadora o grupo de computadoras Linux, se encontrará con numerosas tareas repetitivas.

La solución obvia es escribir un script que manejará la mayoría del trabajo para usted. Al igual que con todas las conchas modernas, la cáscara de bash incluye un lenguaje de scripts robusto y flexible.

Scripting Una tarea larga o tediosa le permite ejecutarla cuando la oficina está cerrada o durante los períodos más silenciosos de una operación de 24 horas. Además, los scripts habilitan la repetibilidad.

Nunca olvidarán un paso, independientemente de lo frecuente de que se les pide que realicen las mismas tareas tediosas. Eso es aceptable a corto plazo. Sin embargo, ¿qué sucede si su script requiere la interacción del usuario o llama un programa que requiera una entrada humana? No quiere que se le solicite que esté presente cuando se ejecute el script, o, si lo está, para monitorear constantemente la ventana del terminal, listo para saltar y golpear algunas teclas.

Sí, es un comando en Linux que envía un flujo de caracteres «Y» o cualquier otra cadena especificada por el usuario a la ventana del terminal. Si un programa está esperando una respuesta de sí o no, se verá obligada a usar uno de los caracteres «Y».

La automatización es igual a la efectividad

Lo aceptará como entrada y procederá. Debe poner la salida de sí en el script. Es posible que desee abstenerse de enviar una respuesta afirmativa.

Tal vez deberías decir «no». Eso también es posible con el comando sí.

Puede enviar cualquier frase que desee; No se limita a las respuestas «Y», «Y», «Sí», «N», «N», o «No». Quizás necesite enviar una «R» a un mensaje «Instalar / actualizar / reinstalar [I / U / R]» para reinstalar.

El comando sí es incapaz de manejar múltiples tipos de respuesta. En ese caso, debemos usar esperar.

Instalación del comando espera

Conectado: Cómo usar el comando Sí de Linux en Ubuntu, Fedora y MANJARO, probamos esperar. Debido a que el paquete no se incluyó en estas distribuciones, tenía que instalarse manualmente.

En Ubuntu, ingrese lo siguiente: En Fedora, necesitará el siguiente comando: Utilizamos pacman en MANJARO: el comando esperado le permite administrar los dos extremos de la conversación entre sus respuestas preparadas y el programa o script al que lo harán ser enviado. Esto se logra creando un script de «esperado» que supervisa el script principal para solicitudes y responde adecuadamente a cada uno.

Supongamos que tiene un script de copia de seguridad que requiere los nombres de los directorios de origen y destino. Luego crea una copia de los archivos en el directorio de origen en el directorio de destino.

Sin los bits de copia de archivos, su script puede parecer esto: este script no hace nada más que solicitar las rutas a los dos directorios. Imprime el directorio de destino a la ventana del terminal para demostrar que recibió una respuesta de esperar y fue capaz de leerlo correctamente. Creamos un «Esperador Script» para proporcionar la otra mitad de la conversación.

Cómo funcionan las expectativas

Por convención, estos son sufijos con «.

exp». Este ejemplo utiliza nuestro script «backup.

sh». Este ejemplo demuestra los tres comandos principales en espera de scripts: engendrar, esperar y enviar. Para comenzar, vale la pena señalar que el Shebang se refiere a esperar, no para golpear. El indicador de -F (archivo) indica que se espera que las respuestas provengan de un archivo. Al establecer tiempos de espera hasta el infinito con -1, los deshabilitamos efectivamente. El comando Spawn inicia la ejecución del script de copia de seguridad.

Somos conscientes de las dos preguntas que el script «Backup.

Eso va a ser fiddly rápido

sh» planteará. Creamos una línea «esperada» para cada pregunta. Estos contienen el mensaje de texto que el script «backup.

sh» se enviará a la ventana del terminal. Esto es lo que buscará el programa anticipado. Cuando se espera que encuentre el mensaje, devuelve el texto en la línea de envío al script «backup.

sh». Los esperan que le indican las líneas de EOF, espere esperar a que el final del archivo final automático del script. Cree archivos ejecutables para ambos scripts: adicionalmente, use el script «backup.

exp» para iniciar todo el proceso. Se muestran las dos indicaciones de «Backup.

SH», al igual que las respuestas de «Backup.

exp». Es fantástico ver a dos scripts que interactúan de esta manera, con nuestro script que espera enviando respuestas automatizadas y el script automatizado que los acepte como entrada genuina. Por supuesto, este es un ejemplo simplificado. Si intenta automatizar un proceso prolongado, y estos son los procesos que desea automatizar, puede atascarse rápidamente.

Las líneas esperadas deben contener texto que coincide exactamente con las indicaciones del script que está automatizando. Las ortografías y la redacción incorrectos resultarán en un pronta que se saltó y el proceso automatizado se estanca.

Si aún está desarrollando o afinando el script que está intentando automatizar, es probable que la redacción y el orden de las indicaciones cambien. Las actualizaciones a los scripts o programas pueden alterar, eliminar o agregar indicaciones. Mantener un historial de cambios y replicarlos en su escritorio se vuelve tedioso y propenso a errores.

AUTOEXPECT es la forma más conveniente de crear un script esperado. Esto es als.