In realtà c'è un modo molto più semplice per farlo. Per la portabilità, questa è la mia implementazione, ma sentiti libero di manipolarla in base alle tue esigenze.
Inserisci la tua password sudo come parametro all'avvio dello script, acquisiscilo e richiamalo con ogni comando che richiederà la password sudo.
#!/bin/bash
PW=
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>
Puoi aggiungere un prompt e catturare dopo che lo script è stato avviato in questo modo:
echo "enter the sudo password, please"
read PW
Ma se qualcun altro controlla ciò che viene eseguito sul nodo; ha accesso ai log creati da esso; o stai semplicemente controllando casualmente quando esegui un test, che potrebbe compromettere la sicurezza.
Questo funziona anche con comandi / script in esecuzione che richiedono un sì per continuare:
echo $PW | yes | ./install.sh
L'eco è in risposta a un prompt, quindi puoi utilizzare qualsiasi cosa tu debba, lì, se stai eseguendo altri script che richiedono istruzioni per il progresso, in ordine sequenziale. Assicurati di sapere che l'ordine, però, o le cose brutte possono accadere.