Você deve estar usando o menu e não a caixa de mensagens. Experimente este script:
#!/bin/bash
let i=0 # define counting variable
W=() # define working array
while read -r line; do # process file by file
let i=$i+1
W+=($i "$line")
done < <( ls -1 /home )
FILE=$(dialog --title "List file of directory /home" --menu "Chose one" 24 80 17 "${W[@]}" 3>&2 2>&1 1>&3) # show dialog and store output
clear
if [ $? -eq 0 ]; then # Exit with OK
readlink -f $(ls -1 /home | sed -n "'echo "$FILE p" | sed 's/ //''")
fi
A matriz é necessária aqui, caso contrário, ela não seria analisada como comando, consulte o link .
O script está listando tudo na pasta / home, igual ao seu exemplo. Se você realmente quer apenas arquivos, substitua
ls -1 /home
com
find /home -maxdepth 1 -type f
Pense também em usar 'whiptail', porque é o padrão na maioria das distribuições. A caixa de diálogo não está instalada principalmente.