4

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

#!/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线接口”开

'dialog' 给出错误提示:

错误:预期 3 个参数,但仅找到 1 个。

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

如果我要获取它打印的字符串,像这样在命令行上复制并粘贴它,它可以工作:

对话框 --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
4

1 回答 1

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[@]}"
于 2015-05-10T07:57:51.793 回答