【发布时间】:2013-05-29 15:51:03
【问题描述】:
我想用 bash-dialog 创建一个简单的对话框。我使用 (X)DSL 和 bash-3.2。最新的 (X)DSL 基于 Linux 2.4.31 并附带 bash-2.05,但是 bash-3.2 可从 MyDSL/Testing 下载。所以,我的脚本在 '#!/bin/bash-3.2/bin/bash' 下运行。
用户可以选择的菜单项来自数据库。
示例数据库文件“骨架”:
室内照明|室内照明
户外照明|户外照明
我从“骨架”文件中将数据检索到数组“选项”中:
options=($(awk -F"|" '{ print $1,$2 }' 骨架)
在终端“回显”数组:
回显 ${options[@]}
其中显示:
“室内电枢”“室内照明”“户外电枢”“户外照明”
这看起来可以用作带有“whiptail”的选择菜单,但事实并非如此。命令行:
whiptail --clear --title "骨架" --menu "选择骨架" 50 80 10 ${options[@]}
显示:
column1-column2
室内电枢
照明用
室内使用
户外电枢
照明用
户外使用
代替:
column1-column2
室内电枢-室内照明
户外电枢-户外照明
似乎带有双引号的数组元素被“whiptail”忽略或看不到。我也试过“${options[@]}”,但总是在第一个词“室内”上得到结果。
除了 'whiptail' 我尝试了 'dialog' 但它们是相同的:版本信息在两种情况下都显示 'cdialog (ComeOn Dialog!) version 1.1-20080316'。
我的资源非常有限,我不想冒险(还)进入“xdialog”、“zenity”、“dzen”之类的东西,即使这样可以解决这个问题。由于 XDSL(用于 XBOX),我也仅限于 Linux 2.4.31。
我一直在浏览互联网,但无济于事。 'whiptail/dialog' 的解决方案是什么?
【问题讨论】:
标签: bash dialog dsl xbox whiptail