Il existe en fait un moyen beaucoup plus simple de le faire. Pour la portabilité, ceci est mon implémentation mais n'hésitez pas à le manipuler pour répondre à vos besoins.
Entrez votre mot de passe sudo en tant que paramètre lors du démarrage du script, capturez-le et renvoyez-le avec chaque commande qui vous demandera le mot de passe sudo.
#!/bin/bash
PW=$1
echo $PW | ./playback_delete_data_patch.sh 09_delete_old_data_p.sql
./command_wo_sudo.sh <param>
echo $PW | ./other_command_requires_sudo.sh <param>
Vous pouvez ajouter une invite et capturer une fois le script lancé, comme suit:
echo "enter the sudo password, please"
read PW
Mais si quelqu'un d'autre surveille ce qui est exécuté sur le nœud; a accès aux journaux créés par celui-ci; ou est simplement en train de regarder au-dessus de votre devrait lorsque vous exécutez un test, cela pourrait compromettre la sécurité
Cela fonctionne également avec les commandes / scripts en cours d'exécution qui nécessitent un oui pour continuer:
echo $PW | yes | ./install.sh
L'écho est une réponse à une invite. Vous pouvez donc utiliser tout ce dont vous avez besoin si vous exécutez d'autres scripts comportant des invites de progression, dans un ordre séquentiel. Assurez-vous de connaître cet ordre, sinon, de mauvaises choses peuvent arriver.