Tengo un script bash que emplea el read
comando para leer argumentos a comandos de forma interactiva, por ejemplo, opciones sí / no. ¿Hay alguna forma de llamar a este script en un script no interactivo pasando valores de opción predeterminados como argumentos?
No es solo una opción que tengo que pasar al script interactivo.
bash
interactive
non-interactive
sidharth sharma
fuente
fuente
Respuestas:
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 a salidas de programas específicos y cosas relacionadas.Esto también funciona en casos como el
ssh
que prohíbe canalizar contraseñas.fuente
Muchas maneras
canalice su entrada
redirigir desde un archivo
use un documento aquí (esto puede ser muy legible)
usa una cadena aquí
fuente
read
para agarrar stdin, ¿qué función puede usar para hacer lo que describió?Puede poner los datos en un archivo y redirigirlo así:
Datos para el guión:
Ejecutando el script:
fuente
Solo quiero agregar una forma más. Lo encontré en otro lugar, y es bastante simple. Digamos que quiero pasar sí a todas las solicitudes en la línea de comando para un comando "execute_command", luego simplemente enviaría sí.
Esto usará sí como respuesta a todas las preguntas de sí / no.
fuente
También puede usar printf para canalizar la entrada a su script.
fuente
otra alternativa puede ser
El comando tee imprime la entrada que recibe en la pantalla y la guarda en un archivo al mismo tiempo.
fuente