Bash对话框中的空格

时间:2013-06-07 14:38:45

标签: bash unix dialog

我正在尝试使用--checklist获取bash对话框以输出数据列表。

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

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

但是如果我在$ item和$ disksize之间放置一个空格,就像这样:

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

什么都不会发生。我尝试过一些其他形式的空白和unicode / ASCII代码而没有运气,你有什么建议吗?

1 个答案:

答案 0 :(得分:4)

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

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

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

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