Shell脚本zenity - 检查是否已取消

时间:2013-11-06 13:03:51

标签: bash shell

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

1 个答案:

答案 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