Automatización de comandos que solicitan datos en una sola línea

Es habitual que muchos comandos de Linux pidan datos cuando  los ejecutas. Por ejemplo, pueden pedir el usuario, lo tecleas, le das al intro. Luego piden la contraseña, la tecleas y le vuelves a dar al intro.

En Linux, es posible enviar el usuario y la contraseña, o cualquier otro parámetro que solicite un comando, en una sola línea y sin esperar a darle al intro.

Esto es muy útil para automatizar tareas y tener que estar delante del teclado escribiendo los datos que nos solicitan.

Ejemplo de un comando que pide usuario y contraseña:

[root@lo07d0t0 ~]# eds-linux-patch -c -a -s -m 1Q2018,flash -T
HPE SA credentials are required to retrieve software repository content.
HPE SA username: cz4lg3
HPE SA password:
Host name: lo07d0t0
Date: Wed Mar 14 12:26:26 CET 2018
Operating system: Red Hat Enterprise Linux Server 6 X86_64

Marco en negrita los campos que he tenido que escribir manualmente.

A continuación, voy a lanzar el comando anterior pero en una sola línea, sin tener que escribir el usuario y la contraseña y darle al intro cada vez. Para ello, utilizaré «echo» y «pipe»:

[root@lcttnat1 ~]# (echo cz4lg3; echo MiContraseña) | eds-linux-patch -c -a -s -m 1Q2018,flash -T
HP SA credentials are required to retrieve software repository content.

Host name: lcttnat1
Date: Wed Mar 14 12:28:28 CET 2018
Operating system: Red Hat Enterprise Linux Server 6 X86_64
HP SA version: 60.0.64851.2
Tool version: eds-patchtool-6.6-530.noarch
Checking for new version of eds-patchtool …
1: eds-patchtool-6.10-625-RHEL6-noarch.rpm (305472 bytes)
Installing new version of eds-patchtool …
Restarting analysis with new version …
Host name: lcttnat1
Date: Wed Mar 14 12:28:47 CET 2018
Operating system: Red Hat Enterprise Linux Server 6 X86_64

COMPÁRTEME

Deja un comentario