Насправді існує набагато простіший спосіб зробити це. Щодо портативності, це моя реалізація, але сміливо маніпулюйте нею відповідно до ваших потреб.
Введіть свій пароль sudo як параметр при запуску скрипту, захопіть його та повторіть його з кожною командою, яка запропонує ввести пароль 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>
Ви можете додати підказку та захоплення після запуску сценарію так:
echo "enter the sudo password, please"
read PW
Але якщо хтось інший стежить за тим, що працює на вузлі; має доступ до створених ним журналів; або просто переглядає свої випадкові випадки, коли ви запускаєте тест, що може загрожувати безпеці.
Це також працює з запущеними командами / сценаріями, для чого потрібно так, щоб продовжити:
echo $PW | yes | ./install.sh
Відлуння відповідає у відповідь на підказку, тож ви можете використовувати все необхідне там, якщо ви запускаєте інші сценарії, що мають підказки до прогресу, в послідовному порядку. Переконайтеся, що ви знаєте, що це замовлення, інакше можуть трапитися погані речі.