我希望打破while循环,当用户在密码对话框中单击取消时,不断询问我使用zenity的密码...否则程序应该继续要求输入密码。
这是我的第一个问题,但第二个问题是,即使我在while循环中输入正确的密码,也会继续运行并继续向我询问密码。
VAR_PASS = $(zenity --password)
while ! $VAR_PASS | sudo -S echo ''; do
VAR_PASS=$(zenity --password)
#check if cancel button pressed, then return
done
答案 0 :(得分:5)
VAR_PASS=""
while [[ -z $VAR_PASS ]] || ! sudo -S echo <<< "$VAR_PASS"; do
VAR_PASS=$(zenity --password)
if [[ $? -eq 1 ]]; then
# cancel button pressed
elif [[ $? -eq 5 ]]; then
# timeout
fi
done