来自字符串变量的Zenity清单

时间:2016-12-08 17:35:04

标签: string bash zenity

我正在尝试从某些阵列构建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
事实是,尽管echo语句产生了正确的字符串,但这不起作用并且清单全部被破坏了。我如何将字符串传递给Zenity有什么问题吗?

1 个答案:

答案 0 :(得分:1)

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