2

我希望打破 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
4

1 回答 1

7
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
于 2013-11-06T13:15:52.390 回答