我希望打破 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
最佳答案
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
关于bash - Shell 脚本 zenity - 检查是否取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19812843/