Запустите скрипт bash в Automator, используя позиционные параметры - PullRequest
0 голосов
/ 05 февраля 2020

Это мой первый раз, когда я использую Automator, и он выглядит довольно изящным инструментом. Я сталкиваюсь с проблемой, однако, в самом конце автоматизации. Цель моего рабочего процесса автоматизатора состоит в том, чтобы указать путь, а затем создать каталог Highschool1, например, в пределах этого пути.
Здесь я хочу, чтобы он выполнял поиск любых файлов в указанном пути, которые включают «Highschool1» и переместите их в новый каталог Highschool1. Вот как мой bash скрипт работает в терминале:

mkdir "/Users/tommy/Desktop/TestShow1/WG/Highschool1"

Это создает каталог как задумано. Затем:

find /Users/tommy/Desktop/TestShow1/WG -name 'Highschool1' -prune -o -type f -name '*Highschool1*' -exec mv -- {} /Users/tommy/Desktop/TestShow1/WG/Highschool1 \;

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

Когда я пытаюсь применить этот скрипт в своей автоматизации, используя позиционные параметры, он перестает работать.

Automation Part 1

Automation Part 2

- Я наполняю переменную с именем «HighschoolName» входом «Highschool1» «
-После ввода переменной« pathA »я выбрал путь, который я выбрал:« / Users / tommy / Desktop / TestShow1 / WG »
-Тогда я перезвоню моей переменной HighschoolName и начинаю с позиционными параметрами.

Это последний сценарий, который я использовал:

mkdir "$1/$2"

find /$1 -name '$2' -prune -o -type f -name '*$2*' -exec mv -- {} /$1/$2 \;

Это создает каталог Highschool1, где я хочу его, но не может переместить в него какие-либо файлы. Это также не дает мне сообщения об ошибке. Это просто действует так, как будто скрипт был успешно выполнен. Кто-нибудь знает, в чем может быть проблема?

1 Ответ

1 голос
/ 05 февраля 2020

Читать о в кавычках

In:

find /$1 -name '$2' -prune -o -type f -name '*$2*' -exec mv -- {} /$1/$2 \;

'$2' не будет интерполировать переменные, вам нужно использовать "$2" (то же самое для '*$2*')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...