Il existe en fait un moyen beaucoup plus simple de le faire. Pour des raisons de portabilité, voici mon implémentation, mais n'hésitez pas à la manipuler selon vos besoins.
Entrez votre mot de passe sudo en tant que paramètre lors du démarrage du script, capturez-le et faites-en l'écho 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 une capture après le lancement du script 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 regarde par-dessus votre épaule au hasard lorsque vous exécutez un test, cela peut 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 en réponse à une invite, donc vous pouvez utiliser tout ce dont vous avez besoin, là, si vous exécutez d'autres scripts qui ont des invites de progression, dans un ordre séquentiel. Assurez-vous de connaître cet ordre, cependant, ou de mauvaises choses peuvent se produire.