各种 bash 命令的简单 GUI

各种 bash 命令的简单 GUI

我正在尝试创建一个带有 GUI 的非常简单的 bash 脚本。我希望它能弹出一个对话框,用户可以在其中使用箭头键选择一个功能,它会完成该功能然后返回菜单。

我开始使用对话框,因为它可以轻松列出选项,但是一旦 1 个操作完成,脚本总会结束。

以下是我目前所拥有的:

dialog --menu "Task to perform" 10 30 3 1 This 2 That Office 3 Exit

有人能告诉我返回菜单的方法吗?(或者另一种方法!)

答案1

您不需要3 Exit选项,因为dialog已经生成了“取消”按钮。您可以循环显示对话框,直到用户按下取消按钮:

(注:我的部分代码示例取自这个答案

#!/bin/bash

#we start the loop....
while [[ "$dialog_exit" -ne 1 ]]; do
    #we force the redirection of the output to the file descriptor n°1 with the --fd-output 1 option
    dialog_result=$(dialog --clear --menu "Task to perform" 10 30 3 1 "This task" 2 "That task" 3 "Yet another task" --fd-output 1);

    #we store the exit code. If the user pressed cancel, exit code is 1. Else, it is 0.
    dialog_exit=$?;
    case "$dialog_result" in
        1) echo "task 1";;
        2) echo "task 2";;
        3) echo "task 3";;
        "") echo "action when cancel";;
    esac
done

相关内容