Quando você está construindo uma linha de comando, sempre use matrizes. Isso evita muitos problemas ao citar:
column_names=(--column=TargetDir --column=TargetPage_ID --column=TargetTitle)
row=("Target Dir 1" 1 "TargetTitle 1")
Note como apenas as citações necessárias (para proteger os espaços) são deixadas agora.
Ao usar uma matriz a
, "${a[@]}"
expandirá os elementos exatamente como estão, sem causar problemas com espaço em branco.
Então:
zenity --list --title="list" "${column_names[@]}" "${row[@]}"
Tente executar printf
em vez de echo
usando suas variáveis originais, você pode ver o que quebra:
printf "%s\n" $column_names $row
Eu nem vou tentar explicar o que quebrou na citação original. : arrepio: