来自bash变量

时间:2015-05-09 23:48:08

标签: 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线接口”ON

'dialog'出错:

  

错误:预计有3个参数,只找到1个。

'whiptail'不会给出任何错误,只是退出列出其选项。

如果我要删除它打印的字符串,请在命令行上复制并粘贴它,它可以工作:

  

对话框 - 标题“配置模块状态” - 检查表“选择要激活的模块”20 50 1 M1“1线接口”ON

同时使用'dialog'和'whiptail'。 发生了什么事?

系统:

  • Linux raspberrypi 3.18.11+#781 PREEMPT
  • whiptail(newt):0.52.14
  • 对话框版本:1.1-20120215

1 个答案:

答案 0 :(得分:0)

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

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[@]}"