world scripts script hello example basics shell

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.



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.