Pasar argumentos a un programa interactivo de forma no interactiva

Resuelto sidharth sharma asked hace 11 años • 5 respuestas

Tengo un script bash que emplea el readcomando para leer argumentos de comandos de forma interactiva, por ejemplo, opciones sí/no. ¿Hay alguna manera de llamar a este script en un script no interactivo pasando los valores de las opciones predeterminadas como argumentos?

No es sólo una opción la que tengo que pasar al script interactivo.

sidharth sharma avatar Jan 18 '13 11:01 sidharth sharma
Aceptado

Muchas maneras

canaliza tu entrada

echo "yes
no
maybe" | your_program

redirigir desde un archivo

your_program < answers.txt

use un documento aquí (esto puede ser muy legible)

your_program << ANSWERS
yes
no
maybe
ANSWERS

usa una cadena aquí

your_program <<< $'yes\nno\nmaybe\n'
glenn jackman avatar Jan 18 '2013 10:01 glenn jackman

Para tareas más complejas existe expect( http://en.wikipedia.org/wiki/Expect ). Básicamente simula a un usuario, puede codificar un script sobre cómo reaccionar ante salidas de programas específicos y cosas relacionadas.

Esto también funciona en casos como sshel que prohíbe enviarle contraseñas.

Dani Gehtdichnixan avatar Jan 18 '2013 10:01 Dani Gehtdichnixan