Vous n'aurez peut-être pas la possibilité d'installer Expect sur le serveur cible. C'est souvent le cas lorsque l'on écrit, par exemple, un travail Jenkins.
Si c'est le cas, je considérerais quelque chose comme la réponse à la suivante sur askubuntu.com :
https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line
printf 'y\nyes\nno\nmaybe\n' | ./script_that_needs_user_input
Notez que dans de rares cas, la commande n'exige pas que l'utilisateur appuie sur Entrée après le caractère. dans ce cas, laissez les sauts de ligne :
printf 'yyy' | ./script_that_needs_user_input
Par souci d'exhaustivité, vous pouvez également utiliser un document ici :
./script_that_needs_user_input << EOF
y
y
y
EOF
Ou si votre shell le prend en charge, une chaîne here :
./script <<< "y
y
y
"
Ou vous pouvez créer un fichier avec une entrée par ligne :
./script < inputfile
Encore une fois, tout le crédit pour cette réponse revient à l'auteur de la réponse sur askubuntu.com, lesmana.
echo y | command
devrait fonctionner.
De plus, certains programmes d'installation ont un indicateur "auto-yes". Il est -y
pour apt-get
sur Ubuntu.
La commande 'yes' fera écho à 'y' (ou tout ce que vous lui demanderez) indéfiniment. Utilisez-le comme :
yes | command-that-asks-for-input
ou, si un 'Y' majuscule est requis :
yes Y | command-that-asks-for-input
Si vous voulez passer 'N', vous pouvez toujours utiliser yes
:
yes N | command-that-asks-for-input