Пробелы в именах файлов

Хорошая штука lf (это такой консольный файловый менеджер, если что). Особенно хорош, если брать чужие настройки и спокойно ими пользоваться. Но иногда исследовательский гвоздь в попе пересиливает хомячковость и тогда начинаются исследования.

Одно из таких исследований привело меня к желанию написать свой скрипт для предпросмотра (но это, наверное, все пользователи lf пишут) и, что гораздо интереснее, к попытке распознания mime-типа файла с использованием команды file. И всё было хорошо, пока я не наткнулся на файлы, в именах которых присутствовали пробелы. Поотлаживав скрипт препросмотра я обнаружил следующее: в скрипт имя файла (даже с пробелами) поступает в виде одного параметра командной строки. Но при попытке использовать file --mime-type $FILENAME -b, если FILENAME содержит пробелы, получаем полную ерунду. И пляски с ${FILENAME// /\\\ } помогали не особенно (хотя это тоже был интересный опыт). В итоге тип файла получается как-то вот так: FILETYPE=$(eval "file --mime-type \"${FILETYPE// /\\\ }\" -b"). Косо, криво, но это работает. И теперь я могу показывать длину видео-файла и прочее, используя mediainfo.

Кстати, ещё один итог отладки: вторым параметром мой скрипт получал параметр высоты доступного окна. Именно его я и использовал, чтобы не печатать файл или информацию о нём целиком. Это экономит какое-то время.

Список использованной литературы