É para isso que yesserve o comando. Ele gera ys um por linha indefinidamente, para que possa ser canalizado para comandos que fazem perguntas sim / não.
yes | /opt/MNG/MNGVIEWHP/fe/uninstall
Isso responde ya todas as perguntas. Para responder na todas as perguntas, substitua yespor yes n. Para uma mistura predefinida de ye n, você pode substituir yespor:
printf '%s\n' y n n y y n...
Ou execute-o como:
/opt/MNG/MNGVIEWHP/fe/uninstall << 'EOF'
y
n
n
y
y
n
EOF
Se você precisar que a resposta não esteja disponível para leitura antes de 10 segundos, faça:
(sleep 10; echo y; sleep 2; echo n;...) | /opt/MNG/MNGVIEWHP/fe/uninstall
Mas isso provavelmente não seria necessário, quando escrevermos yno canal, ele estará lá para uninstalllê-lo sempre que quiser, é improvável que você precise esperar que esteja pronto para lê-lo. A exceção seria se você uninstalldecidir liberar a entrada antes de fazer a pergunta.
Todos assumem que o uninstallcomando apenas lê cada resposta como uma linha de entrada de sua entrada padrão.
Para casos mais complexos, onde o comando lê as respostas diretamente do dispositivo tty ou onde você precisa de respostas de alimentação condicionalmente (por exemplo, com base no que as saídas de comando), que é onde você pode usar coisas como expectou zsh's zpty.
Observe que muitos programas interativos podem entrar em algum modo não interativo quando passam por alguma opção. Convém verificar o manual primeiro, antes de gastar muito esforço para solucionar o problema.
#! /bin/bash -vez de#!/usr/bin