web-dev-qa-db-fra.com

Comment répondre automatiquement à un programme client interactif (pas un script) avec un script bash?

J'ai googlé ça, et presque tout ce que j'ai pu trouver, c'est répondre à un script bash et ça ne marche pas pour moi. Les réponses que j'ai trouvées m'ont dit de faire:

echo "yes" | ./script

ou

./script <<< yes

ou quelque chose comme ça. Cela n'a pas fonctionné pour moi. J'imagine que c'est parce que ce que je veux faire, c'est répondre automatiquement à un programme exécutable, pas à un script. Plus spécifiquement, je veux répondre automatiquement parted. Ici

parted -a optimal /dev/sda mklabel msdos
Warning: The existing disk label on /dev/sda will be destroyed and
all data on this disk will be lost. Do you want to continue?
Yes/No? _

J'essaye de faire

echo "yes" | parted -a optimal /dev/sda mklabel msdos

et

parted -a optimal /dev/sda mklabel msdos <<< yes

Les deux méthodes n'ont pas fonctionné. Ceux qui n'ont pas répondu yes à parted Invite.

Alors, comment puis-je répondre automatiquement à cette invite parted sans utiliser de script bash?

5
Mas Bagol

Avec parted, vous pouvez simplement ajouter l'option -s:

parted -a optimal -s /dev/sda mklabel msdos

De la page Trusty man pour parted :

 [...] 
 -s,--scénario
 ne demande jamais à l'utilisateur d'intervenir 
 [...] 
10
kos