bash - 来自 bash 变量的 Linux whiptail/dialog 参数错误

标签 bash shell dialog whiptail

有人可以解释为什么下面的代码不起作用吗?我快要发疯了。

#!/bin/bash

TEST="M1 \"1-wire Interface\" ON"
echo $TEST
RESULT=$(dialog --title "Config Modules State" --checklist "Choose modules to activate" 20 50 1 $TEST)

它按预期在输出中打印:

M1 "1-wire Interface" ON

'dialog' 给出一个错误提示:

Error: Expected 3 arguments, found only 1.

'whiptail' 没有给出任何错误,只是退出并列出其选项。

如果我要获取它打印的字符串,像这样复制并粘贴到命令行中,它会起作用:

dialog --title "Config Modules State" --checklist "Choose modules to activate" 20 50 1 M1 "1-wire Interface" ON

同时使用“对话”和“鞭尾”。 这是怎么回事?

系统:

  • Linux 树莓派 3.18.11+ #781 抢占
  • 鞭尾鱼(蝾螈):0.52.14
  • 对话版本:1.1-20120215

最佳答案

如果有人遇到这个问题,评论中的答案。

TEST=(M1 '1-wire Interface' ON)
TEST=( "${TEST[@]}" M2 'Other Interface' OFF )
echo ${TEST[@]}
dialog --title "Config Modules State" --checklist "Choose modules to activate" 20 50 2 "${TEST[@]}"

关于bash - 来自 bash 变量的 Linux whiptail/dialog 参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30146241/

相关文章:

bash - 将参数从命令行传递到 tcl 脚本

linux - 将今天的日期与 future 的日期进行比较会导致一元运算符错误

ASP.NET 用户控件和 jQuery 对话框

java - 如何创建用于多个数据输入的选项卡式 Joptionpane

OS X 上的 Git 从 1.8.3.4 更新到 1.8.4.2

javascript - 按 ESC 键关闭对话框时显示确认对话框

Bash:将 ping 对 SIGQUIT 的中间统计信息捕获到变量

bash - 从目录中的所有文件中删除字符串

perl - 列出最小顺序的文件

linux - 将 shell 中字符串中所有出现的 Ñ 替换为 N