>我正在尝试从一些数组中构建一个 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
需要是一个数组,原因与你创建column0
数组和column1
数组的原因相同:保护作为每个元素一部分的空格。
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[@]}"