Entrée depuis un script shell
J'ai un script qui appelle une application qui nécessite la saisie de l'utilisateur, par exemple exécuter application qui requiert que l'utilisateur tapez 'O' ou 'N'.
Comment puis-je obtenir le script shell de ne pas demander à l'utilisateur pour l'entrée, mais plutôt d'utiliser la valeur d'une variable prédéfinie dans le script?
Dans mon cas, il y aura deux questions qui nécessitent d'entrée.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Vous pouvez pipe dans le texte que vous souhaitez sur stdin et il sera tout la même chose que d'avoir le type d'utilisateurs eux-mêmes. Par exemple, pour simuler le fait de taper "Y" il suffit d'utiliser:
ou à l'aide d'une variable du shell:
Il y a aussi une commande unix appelé le "oui" qui génère un flux continu de "y" pour les applications qui demandent beaucoup de questions que vous voulez juste de répondre par l'affirmative.
le prévoyons de commande pour des situations plus complexes, le système devrait avoir. Ne l'ai pas utilisé beaucoup de moi-même, mais je soupçonne son ce que vous cherchez.
http://oreilly.com/catalog/expect/chapter/ch03.html
Si l'application lit depuis l'entrée standard (par opposition à partir de /dev/tty, comme par exemple la
passwd
programme n'), puis l'entrée multiligne est le candidat parfait pour un ici-document.Comme vous pouvez le voir, ici-documents permettent même paramètre de substitution. Si vous ne voulez pas cela, utilisez
<<'EOF'
.Je préfère cette façon: Si Vous souhaitez plusieurs entrées... vous mettez dans de multiples écho à des déclarations comme:
Dans l'exemple ci-dessus... je suis d'alimentation de deux entrées dans la install.sh script. Alors... à la fin, je suis à la tuyauterie de la sortie du script dans un fichier journal pour être archivées et vu pour plus tard.