2017-09-14 1 views
0

Je veux automatiser une chaîne de commandes, dont l'une nécessite plusieurs entrées utilisateur de oui ou non. Comment puis-je scripter ceci afin que mon script choisisse automatiquement plusieurs réponses?Répondre à plusieurs invites de script y/n; shellscript

Exemple de la commande checkinstall:

Do you want me to list them? [n]:(Je veux répondre non/n ici)

Should I exclude them from the package? [n]:(je veux répondre oui/y ici)

Comme vous peut voir la commande checkinstall veut plus de 1 entrée. Quand je veux juste donner une commande à une entrée, j'utilise la méthode this.

Répondre

2

Utilisez ici le document <<.

checkinstall <<EOF 
no 
yes 
EOF 
0

Vous pourriez attendre script avec

#!/usr/bin/expect 

set timeout 20 

spawn "./application" 

expect "Are you a human?: " { send "yes\r" } 
expect "Are you a android :" { send "no\r" } 

interact 
0

Essayez yes. Fonctionne également, si vous appelez votre commande plus d'une fois.

yes $'n\ny' | for n in 1 2 3; do checkinstall; done