Ecco a cosa yesserve il comando. Emette yuno per riga indefinitamente in modo da poter essere reindirizzato a comandi che fanno domande sì / no.
yes | /opt/MNG/MNGVIEWHP/fe/uninstall
Questo risponde ya tutte le domande. Per rispondere na tutte le domande, sostituire yescon yes n. Per un mix predefinito di ye n, è possibile sostituire yescon:
printf '%s\n' y n n y y n...
O eseguilo come:
/opt/MNG/MNGVIEWHP/fe/uninstall << 'EOF'
y
n
n
y
y
n
EOF
Se hai bisogno che la risposta non sia disponibile per la lettura prima di 10 secondi, dovresti:
(sleep 10; echo y; sleep 2; echo n;...) | /opt/MNG/MNGVIEWHP/fe/uninstall
Ma probabilmente non sarebbe necessario, quando scriviamo ynella pipe, sarà lì per uninstallleggerlo ogni volta che vuole leggerlo, è improbabile che tu debba aspettare che sia pronto per leggerlo. L'eccezione sarebbe se uninstalldecide di svuotare l'input prima di porre la domanda.
Tutti quelli assumono che il uninstallcomando legga solo ogni risposta come una riga di input dal suo input standard.
Per i casi più complessi, in cui il comando legge le risposte direttamente dal dispositivo tty o in cui è necessario alimentare le risposte in modo condizionale (ad esempio in base a ciò che il comando genera), è lì che dovresti usare cose come expecto zsh's zpty.
Si noti che molti programmi interattivi possono accedere a una modalità non interattiva quando vengono passate alcune opzioni. Potresti voler controllare prima il loro manuale, prima di spendere troppo per ovviare al problema.
#! /bin/bash -invece di#!/usr/bin