shell - scripts - linux sh script example
Entrada desde el script de shell (4)
Puede canalizar cualquier texto que desee en stdin y será lo mismo que hacer que el usuario lo escriba. Por ejemplo, para simular el tipeo "Y" simplemente use:
echo "Y" | myapp
o usando una variable de shell:
echo $ANSWER | myapp
También hay un comando de Unix llamado "sí" que emite un flujo continuo de "y" para las aplicaciones que hacen muchas preguntas que solo desea responder afirmativamente.
Tengo un script que llama a una aplicación que requiere la entrada del usuario, por ejemplo, ejecutar la aplicación que requiere que el usuario escriba ''Y'' o ''N''.
¿Cómo puedo hacer que el script de shell no le pida al usuario la entrada, sino que use el valor de una variable predefinida en el script?
En mi caso, habrá dos preguntas que requieren entrada.
el comando esperado para situaciones más complicadas, tu sistema debería tenerlo. No lo he usado mucho, pero sospecho que es lo que estás buscando.
$ man expect
Si la aplicación lee de stdin (a diferencia de / dev / tty, como por ejemplo, el programa passwd
), la entrada de línea múltiple es el candidato perfecto para un documento aquí.
#!/bin/sh
the_app [app options here] <<EOF
Yes
No
Maybe
Do it with $SHELL
Quit
EOF
Como puede ver, aquí los documentos incluso permiten la sustitución de parámetros. Si no quiere esto, use <<''EOF''
.
Prefiero esto: si quieres entradas múltiples ... pones varias declaraciones de eco así:
{ echo Y; Y; } | sh install.sh >> install.out
En el ejemplo anterior ... estoy alimentando dos entradas en el script install.sh. Entonces ... al final, estoy canalizando la salida del script a un archivo de registro para ser archivado y visto para más adelante.