Har*_*rry 7 command-line bash scripts zenity yad
我需要为两个 Bash 列表(文件)记录中的每一个显示一些文本以及项目(大约 15 个值)。在同一屏幕上,我需要呈现三向选择(按钮、滚动选择窗口等)。
我是一个 Ubuntu(11.04) 脚本菜鸟,刚刚开始在脚本中使用 Zenity。我的朋友推荐了YAD。
我可以在 YAD 中完成所有这些还是使用我们不知道的其他简单的 GUI 工具?
.
这是 Yad 中的一个非常简单的实现。
与脚本位于同一目录中的名为“mylist”的文本文件包含“1 2 3 4 5 6 7 8 9 10”。空格字符是输入列表的默认分隔符。
示例脚本是:
#/bin/bash
thelist=$(<mylist)
thechoice=$(yad --title="Choose a value" --width=200 --height=200 --list --column="Values" --separator="" $thelist)
exit $(yad --title="You chose..." --text=$thechoice)
Run Code Online (Sandbox Code Playgroud)
就是这样。滚动列表是自动处理的。这--separator=""
是为了禁止 Yad 默认在输出中附加管道字符(“|”)。
当您阅读手册页时,您会发现有很多可能性。您可以添加按钮、图标、单选按钮等。您可以使用 Yad 的笔记本功能将对话框作为插件嵌入到其他对话框中来创建选项卡式对话框。
PCLinusOS mag上有一个很长的示例, Yad 站点上有一些有趣的较短示例。
对于简单的对话框,Yad 或 kdialog 确实是最有功能的。然而,一个完整的 bash GUI 只能通过我所知道的两个程序来完成:
gtkdialog ( https://code.google.com/p/gtkdialog ) 将为您提供单个程序的成熟前端,如果 yad 不足以满足您的需求,这可能就是您首先要寻找的。
另一个是 gtkserver ( http://www.gtk-server.org ),它是一个单独运行的 GUI 服务器。您的 bash 应用程序可以通过管道、消息或 TCP 套接字与其进行通信,如果您正在计划使用单个中央接口进行复杂的脚本/应用程序设置,这将非常方便。我认为这对于您当前的项目来说有点过头了:-)