C'est à cela que yessert la commande. Il produit ys un par ligne indéfiniment afin qu'il puisse être dirigé vers des commandes qui posent des questions oui / non.
yes | /opt/MNG/MNGVIEWHP/fe/uninstall
Cela répond yà toutes les questions. Pour répondre nà toutes les questions, remplacez yespar yes n. Pour un mélange prédéfini de yet n, vous pouvez remplacer yespar:
printf '%s\n' y n n y y n...
Ou exécutez-le en tant que:
/opt/MNG/MNGVIEWHP/fe/uninstall << 'EOF'
y
n
n
y
y
n
EOF
Si vous avez besoin que la réponse ne soit pas disponible pour la lecture avant 10 secondes, vous feriez:
(sleep 10; echo y; sleep 2; echo n;...) | /opt/MNG/MNGVIEWHP/fe/uninstall
Mais cela ne serait probablement pas nécessaire, lorsque nous écrivons ysur le tuyau, il sera là pour uninstallle lire chaque fois qu'il veut le lire, il est peu probable que vous ayez besoin d'attendre qu'il soit prêt à le lire. L'exception serait si uninstalldécide de vider l'entrée avant de poser la question.
Tous ceux qui supposent que la uninstallcommande lit simplement chaque réponse comme une ligne d'entrée à partir de son entrée standard.
Pour les cas plus complexes, où la commande se lit comme suit les réponses directement à partir du dispositif TTY ou lorsque vous avez besoin de réponses d'alimentation sous condition (par exemple en fonction de ce que les sorties de commande), qui est là que vous voulez utiliser des choses comme expectou zshd » zpty.
Notez que de nombreux programmes interactifs peuvent entrer dans un mode non interactif lorsqu'ils passent une option. Vous voudrez peut-être consulter leur manuel avant de consacrer trop d'efforts à contourner le problème.
#! /bin/bash -au lieu de#!/usr/bin