Sebenarnya ada cara yang lebih sederhana untuk melakukan ini. Untuk portabilitas, ini adalah implementasi saya tetapi merasa bebas untuk memanipulasinya sesuai dengan kebutuhan Anda.
Masukkan kata sandi sudo Anda sebagai parameter saat memulai skrip, tangkap, dan gema dengan setiap perintah yang akan meminta kata sandi 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>
Anda dapat menambahkan prompt dan menangkap setelah skrip dimulai seperti:
echo "enter the sudo password, please"
read PW
Tetapi jika orang lain memantau apa yang berjalan pada node; memiliki akses ke log yang dibuat olehnya; atau hanya memeriksa Anda secara acak ketika Anda menjalankan tes, yang dapat membahayakan keamanan.
Ini juga berfungsi dengan menjalankan perintah / skrip yang memerlukan ya untuk melanjutkan:
echo $PW | yes | ./install.sh
Gema sebagai respons terhadap prompt, sehingga Anda dapat menggunakan apa pun yang Anda butuhkan, di sana, jika Anda menjalankan skrip lain yang memiliki permintaan untuk kemajuan, secara berurutan. Namun, pastikan Anda tahu bahwa ketertiban atau hal-hal buruk dapat terjadi.