Невозможно определить переменные при использовании «Run Shell Script» в Automator - PullRequest
0 голосов
/ 29 ноября 2018

В настоящий момент я запускаю следующий скрипт в Automator, и он отлично работает:

#Copy Originals to SS1 on the main Server
find /Volumes/styleshoot/TJXE-HHPS-SS01/ -type f -exec cp -p {} "/Volumes/Hams Hall Workspace/StyleShoot1_WIP" \;

#Make Directory for Styleshoot 1 Backups
mkdir -p /Volumes/Hams\ Hall\ Workspace/SS\ Backup/$(date +%Y%m%d)/SS1

#Copy SS1 for into Backup folder
find /Volumes/styleshoot/TJXE-HHPS-SS01/ -type f -exec mv {} /Volumes/Hams\ Hall\ Workspace/SS\ Backup/$(date +%Y%m%d)/SS1 \;

Хотя я планировал сделать его чище, введя некоторую переменную, например:

Original="/Volumes/styleshoot/TJXE-HHPS-SS01/"
Backup="/Volumes/Hams\ Hall\ Workspace/SS\ Backup/$(date +%Y%m%d)/SS1"
MainServer="/Volumes/Hams Hall Workspace/StyleShoot1_WIP"

mkdir -p "$Backup"

find "$Original" -type f -exec cp -p {} "$MainServer" \;
find "$Original" -type f -exec mv {} "$Backup" \;

Но когда я запускаю его - ничего не происходит.Я нашел много подобных проблем на этом форуме, где основным решением было бы убрать пробелы вокруг =. Хотя это не влияет на вывод.Любое предложение будет высоко ценится.

1 Ответ

0 голосов
/ 29 ноября 2018

Если кто-нибудь будет гуглить, проблема была в том, что я пытался определить mkdir местоположение."" двойные кавычки не нужны.

Измените это:

Backup="/Volumes/Hams\ Hall\ Workspace/SS\ Backup/$(date +%Y%m%d)/SS1"

на Это:

Backup=/Volumes/Hams\ Hall\ Workspace/SS\ Backup/$(date +%Y%m%d)/SS1 

Окончательный сценарий приведен ниже и работает какжелаемый:

Original="/Volumes/styleshoot/TJXE-HHPS-SS01/"
Backup=/Volumes/Hams\ Hall\ Workspace/SS\ Backup/$(date +%Y%m%d)/SS1
MainServer="/Volumes/Hams Hall Workspace/StyleShoot1_WIP"

mkdir -p "$Backup"

find "$Original" -type f -exec cp -p {} "$MainServer" \;
find "$Original" -type f -exec mv {} "$Backup" \;
...