Я пытаюсь написать скрипт, который сжимает все изображения в папке.

Отсюда я получил это:

for i in *.png; do sips -Z 800 "${i}" --out "${i%png}"; done

но я продолжаю получать эту ошибку:

Warning: *.png not a valid file - skipping
Error 4: no file was specified
Try 'sips --help' for help using this tool

Что я делаю неправильно?

Это моя версия Bash:

bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
Copyright (C) 2007 Free Software Foundation, Inc.

2 ответа2

2

Сценарий должен быть выполнен внутри папки, содержащей картинки. Если каким-либо образом в текущей папке нет файла .png цикл присваивает переменной *.png переменную i . В результате sips сообщает вам, что это неверный файл, и это правильно.

-1

Ты пытался

set +o noglob

остановить буквальное толкование подстановочных знаков?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .