来自字符串变量的 Zenity 清单

Zenity checklist from string variable

我正在尝试从一些数组构建 Zenity 清单。我目前的方法是遍历数组,构建一个字符串并将其传递给 Zenity,如下所示:

#!/bin/bash

column0=( "row 0" )
column1=( "row 0" )

column0+=( "row 1" )
column1+=( "row 1")

column0+=( "row 2" )
column1+=( "row 2" )

table=''

for (( i=0; i<${#column0[@]}; i++ ))
do
    table="$table TRUE \"${column0[$i]}\" \"${column1[$i]}\""
done

echo $table

zenity  --list --checklist --width=600 --height=450 \
   --column="column 0"  \
   --column="column 1"  \
   --column="column 2"  \
   $table

事实是,尽管回显语句产生了正确的字符串,但这是行不通的,而且核对表全部损坏。我如何将字符串传递给 Zenity 有什么问题吗?

table 需要是一个数组,原因与您制作 column0column1 数组的原因相同:保护作为每个元素一部分的空白。

column0=( "row 0" "row 1" "row 2")
column1=( "row 0" "row 1" "row 2")

table=()  
for (( i=0; i<${#column0[@]}; i++ ))
do
    table+=(TRUE "${column0[$i]}" "${column1[$i]}")
done

zenity  --list --checklist --width=600 --height=450 \
   --column="column 0"  \
   --column="column 1"  \
   --column="column 2"  \
   "${table[@]}"