Bunu yapmanın çok daha basit bir yolu var. Taşınabilirlik için bu benim uygulamam ama ihtiyaçlarınızı karşılamak için kullanmakta özgürsünüz.
Komut dosyasını başlatırken sudo şifrenizi bir parametre olarak girin, yakalayın ve sudo şifresini isteyecek olan her komutla yankılanın.
#!/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>
Bir komut istemi ekleyebilir ve komut dosyası şu şekilde başlatıldıktan sonra yakalayabilirsiniz:
echo "enter the sudo password, please"
read PW
Fakat eğer birisi düğümde neyin çalıştığını izlerse; tarafından oluşturulan günlüklere erişimi vardır; ya da sadece bir test yaptığınızda, güvenliği tehlikeye atabilecek rastgele bir şekilde bakmaktır.
Bu, devam etmek için bir evet gerektiren çalışan komutlar / komut dosyaları ile de çalışır:
echo $PW | yes | ./install.sh
Yankı, bir isteme yanıt olarak gelir; böylece, ilerlemesini isteyen diğer komut dosyalarını sıralı bir sırayla çalıştırıyorsanız, ihtiyacınız olan her şeyi kullanabilirsiniz. Bu emri bildiğinizden emin olun, fakat kötü şeyler olabilir.