Simuler une entrée utilisateur dans un script bash

Je crée mon propre script bash, mais je suis bloqué pour le moment. Fondamentalement, le script serait utilisé pour automatiser la configuration du serveur dans CentOS. Certains logiciels demandent normalement à l’utilisateur de saisir un mot de passe. Je veux que le script mette le mot de passe que j’ai généré et stocké en tant que variable au lieu de demander à l’utilisateur.

Lorsque le message “Nouveau mot de passe:” apparaît lors de l’installation, comment puis-je faire en sorte que le script mette la valeur stockée dans une variable $key comme si l’utilisateur l’avait saisie, avec un script bash?

Vous devriez trouver que la commande “expect” fera ce que vous en avez besoin. Son largement disponible. Voir ici pour un exemple: http://www.thegeekstuff.com/2010/10/expect-examples/

(exemple très grossier)

 #!/usr/bin/expect set pass "mysecret" spawn /usr/bin/passwd expect "password: " send "$pass" expect "password: " send "$pass" 

Voici un morceau de code que j’ai écrit pour y script pour demander le mot de passe des utilisateurs et les définir dans / etc / passwd. vous pouvez le manipuler un peu probablement pour obtenir ce dont vous avez besoin:

 echo -n " Please enter the password for the given user: " read userPass useradd $userAcct && echo -e "$userPass\n$userPass\n" | passwd $userAcct > /dev/null 2>&1 && echo " User account has been created." || echo " ERR -- User acount creation failed!"