En realidad, hay una manera mucho más simple de hacer esto. Para la portabilidad, esta es mi implementación, pero siéntase libre de manipularla para satisfacer sus necesidades.
Ingrese su contraseña de sudo como parámetro al iniciar el script, captúrelo y repítalo con cada comando que le solicitará la contraseña de 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>
Puede agregar una solicitud y capturar después de que se inicia el script de la siguiente manera:
echo "enter the sudo password, please"
read PW
Pero si alguien más monitorea lo que se ejecuta en el nodo; tiene acceso a los registros creados por él; o simplemente está mirando su deber al azar cuando ejecuta una prueba, eso podría comprometer la seguridad.
Esto también funciona con comandos / scripts en ejecución que requieren un sí para continuar:
echo $PW | yes | ./install.sh
El eco responde a una solicitud, por lo que puede usar cualquier cosa que necesite, allí, si está ejecutando otras secuencias de comandos que tienen indicaciones de progreso, en orden secuencial. Sin embargo, asegúrese de conocer ese orden o pueden ocurrir cosas malas.