Задать вопрос
@antimodern

Почему скрипт не работает с файлами с пробелами?

Есть скрипт, но он ломается если файлы содержат пробелы в названии. Как исправить?

for font in $(ls); do
  if [[ $font == *.otf ]] || [[ $font == *.ttf ]];then
    echo "$font"
    $HOME/Downloads/sfnt2woff-zopfli-master/sfnt2woff-zopfli "$font"
    $HOME/Downloads/woff2/woff2_compress "$font"
  fi
done


Скрипт запускается в директории, выбирает файлы с разрешением .otf или .ttf и конвертит их. Проблема в том, что если файл с пробелами скрипт видит только последнее слово+разрешение файла, соответсвенно путь поломан.
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 3
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Берите в кавычки.
IFS=$'\n'
for font in $(ls -1); do
  if [[ "$font" == "*.otf" ]] || [[ "$font" == "*.ttf" ]]; then
    echo "$font"
    $HOME/Downloads/sfnt2woff-zopfli-master/sfnt2woff-zopfli "$font"
    $HOME/Downloads/woff2/woff2_compress "$font"
  fi
done
Ответ написан
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
в начале скрипта ,до цикла, вставь строку
IFS=$'\n'
Ответ написан
Комментировать
@Hanharr
Не стоит парсить ls

for font in *; do
    if [[ "$font" == *.pdf ]] || [[ "$font" == *.jpg ]]; then
        echo "$font"
        "$HOME"/Downloads/sfnt2woff-zopfli-master/sfnt2woff-zopfli "$font"
        "$HOME"/Downloads/woff2/woff2_compress "$font"
    fi
done
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы