In realtà esiste un modo molto più semplice per farlo. Per la portabilità, questa è la mia implementazione, ma sentiti libero di manipolarla per soddisfare le tue esigenze.
Inserisci la tua password sudo come parametro quando avvii lo script, acquisiscilo ed esegui l'eco con ogni comando che richiederà la password 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>
È possibile aggiungere un prompt e acquisire 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 registri da esso creati; o sta semplicemente esaminando il tuo caso in modo casuale quando si esegue un test, che potrebbe compromettere la sicurezza.
Questo funziona anche con l'esecuzione di comandi / script che richiedono un sì per continuare:
echo $PW | yes | ./install.sh
L'eco è in risposta a un prompt, quindi puoi usare tutto ciò di cui hai bisogno, lì, se stai eseguendo altri script che richiedono richieste di progresso, in ordine sequenziale. Assicurati di sapere che, comunque, possono succedere cose brutte.