Existem dois problemas. O IFS
para a saída de locate
e o IFS
para zenity
.
IFS
é uma variável do shell que contém uma string de caracteres, e qualquer uma delas quebrará uma string em palavras. O valor usual é ' space
tab
newline
'
Ambos são corrigidos ao definir IFS
para uma nova linha imediatamente antes de executar locate
.
export IFS='
'
FOUNDFILES=($(locate --database ~/.locate.db -i -b "$INPUT"))
O segundo problema é corrigido por export
ing este valor de IFS
no ambiente, de modo que também afeta zenity
. Isso significa que você também precisa modificar a criação de tempzen.txt
para usar novas linhas como separadores de palavras.
if [ $x == 0 ]
then
echo -e "--list\n--title\nFILE-SELECTOR\n--column\nserialno.\n--column\nfile\n--radiolist\nTRUE\n${FOUNDFILES[$x]}\n--width\n1000\n--height\n600" >> /home/$USERNAME/tempzen.txt
x=$((x+1))
else
echo -e "FALSE\n${FOUNDFILES[$x]}" >> /home/$USERNAME/tempzen.txt
x=$((x+1))
fi