2

我正在尝试使用 bash 对话框来输出带有 --checklist 的数据列表。

我有这个定义列表中的内容:

menuitems="$menuitems $n $item$disksize off\n"

但是,如果我在 $item 和 $disksize 之间放置一个空格,如下所示:

menuitems="$menuitems $n $item $disksize off\n"

什么都不会发生。我尝试过输入一些其他形式的空格和 unicode/ASCII 码,但没有成功,你有什么建议吗?

4

1 回答 1

4

问题是您无法区分属于某个项目的空格和分隔列表中项目的空格。解决方案是使用数组:

menuitems+=( "$n" "$item$disksize" "off" )

dialog ... --checklist "foo" $height $width $listHeight "${menuitems[@]}"

引用数组的扩展会产生一个单词列表,每个单词都被引用以保护数组的各个元素中包含的空格。

于 2013-06-07T14:56:52.043 回答