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

标签 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

最佳答案

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/

相关文章:

git - 切换分支时调用外部命令

linux - 为什么我必须对来自守护进程的命令执行 sudo 命令?

linux - 特殊文件既是符号链接(symbolic link)又是另一种类型的文件

java - 使用 Java 读取 PATH 变量(在 Mac OS X 上的 Eclipse 中)与 shell 不同

linux - 使用 awk 查找可变长度的正则表达式并根据找到的长度编辑以下行

git - 让头停止等待输入

bash - 结合wget和grep下载

linux - 带有 args 的 bash 别名适用于一种环境,不适用于另一种环境

linux - 将表格格式的输出转换为 bash 脚本中的逗号分隔表格

linux - bash 中的 "batch"文件