Как загрузить диалоговое окно «zenity» List с встроенными в пространство данными из `ls`?

У меня возникают проблемы с загрузкой диалогов списка zenity когда данные содержат пробелы.

Это прямолинейно, когда в перечисленных данных нет пробелов,
но я не знаю простого / стандартного метода для пространственных имен файлов.

По какой-то причине вывод $ ( ls -Q /tmp ) (Quoted output) по-прежнему
разбивает имена файлов в каждом пространстве. Котировки и обратные слэши в
ls | sed ls | sed похоже, рассматривается как «финализированная строка», а не
как «читаемые строки данных» (например, первые две строки данных) …

Мне удалось «обойти проблему», но самомодифицирующийся код, вероятно,
это не лучший способ! (хотя это весело! 🙂


Вот метод, который НЕ работает

 zenlist="/tmp/zen list"; touch "$zenlist" zenity --list --title='A single-column List' --width=600 --height=450 \ --column='Spaces are allowed within "quotes"' \ "How much wood would a woodchuck chuck," \ "if a wooodchuck could chuck wood?" \ $(ls -Q -1 "$zenlist"* |sed 's/$/ \\/') echo "" # rm "$zenlist" # Uncomment this line to delete the file 

Этот метод работает, но должен быть «обычный» (лучший) способ !?

 zenlist="/tmp/zen list" echo "zenity --list --title='A single-column List' --width=600 --height=450 \\" >"$zenlist" echo "--column='Spaces are allowed within \"quotes\"' \\" >>"$zenlist" echo "\"How much wood would a woodchuck chuck,\" \\" >>"$zenlist" echo "\"if a wooodchuck could chuck wood?\" \\" >>"$zenlist" (ls -Q "$zenlist"* |sed 's/$/ \\/') >>"$zenlist" echo "" >>"$zenlist" source "$zenlist" # rm "$zenlist" # Uncomment this line to delete the file