В Automator, как получить содержимое папки после действия «Run Shell Script»

0

У меня есть приложение Automator, в котором я хотел бы перетащить на него папку и создать копию этой папки с переименованными файлами. Например, начиная со следующего:

root
 +--svgs
     |--icons_a.svg
     +--icons_b.svg

При перетаскивании svgs каталог на приложение, я хотел бы в конечном итоге следующее:

root
 |--svgs
 |   |--icons_a.svg
 |   +--icons_b.svg
 +--renamed-svgs
     |--a.svg
     +--b.svg

Я пробовал следующее: enter image description here

Но это бросает следующее:

enter image description here

Не знаете, как отладить ошибку, но как я могу получить первое действие «Run Shell Script», которое возвращает либо папку «renamed-svgs», либо ее содержимое?

Или есть лучший способ сделать все это?

robertwbradford
источник

Ответы:

1

Как правило, желательно заключать переменную в двойные кавычки.

Использовать echo Команда вернуть " переименованы-SVGs папка

rm -rf "$@"/../renamed-svgs
cp -rf "$@"/ "$@"/../renamed-svgs
echo "$@"/../renamed-svgs/

Или используйте find команда для возврата файлов, имя которых начинается с icons_

rm -rf "$@"/../renamed-svgs
cp -rf "$@"/ "$@"/../renamed-svgs
find "$@/../renamed-svgs/" -type f -maxdepth 1 -iname 'icons_*' -print
jackjr300
источник
0

Эта ошибка - именно то, что произойдет для сценариев bash, если приложение, с которым она взаимодействует, не является Запущенное приложение когда он взаимодействует с. Что касается лучшего способа выполнения задачи, нет, automator - это круто.

  • Я знаю, не полный ответ, но я не могу комментировать, и мое утверждение верно.
Jahh
источник