1. получить пассворд:
password=`dialog --stdout --passwordbox 'Type the password:' 0 0`
2. передать его sudo:
echo "$password" | sudo -S ...
man sudo
-S The -S (stdin) option causes sudo to read the password from the
standard input instead of the terminal device.
Небольшая затыка случилась. А можно ли для dialoga параметры в другой исп-й файл писать (чтобы параметры обработки иного описать,т.е esc ,введение неверного пороля, отказ),а потом его передавать для:
password=`some_another_file`
а то sudo почему-то внутри одной сесси на второй раз срабатывает автоматом ,вне зависимости от действия))
Я не очень хорошо понял о чем речь, но dialog возвращает код
завершения процесса ($? в bash), который для OK = 0, для CANCEL = 1, для ESC = 255
После запуска dialog проверить код и запустить sudo только
если он равен 0.
sudo второй раз не спросит пароль, так как некоторое
время 5-15минут (зависит от сборки) "помнит предыдушую сессию"
При не правильном пароле sudo возвращает 1 как код завершения.
echo "$password"|sudo -S ls /root
if [ $? == 1 ]; then
echo 'Invalid password'
fi