2015-08-26 2 views
0

Я создаю службу для поиска, используя автомат. Сервис имеет только один пункт: «запустить сценарий оболочки» и сценарий таков:Этот скрипт работает от Bash, но не от Automator

currentDirectory=$(pwd) 


for f in "[email protected]"; do 

    DIRNAME="$(dirname "$f")" 

    export width=$(mdls "$f" | grep kMDItemPixelWidth | tail -n1 | cut -d= -f2) 
    export height=$(mdls "$f" | grep kMDItemPixelHeight | tail -n1 | cut -d= -f2) 

    oneWidth=$((width/3)) 
    oneHeight=$((height/3)) 

    twoWidth=$((umWidth * 2)) 
    twoHeight=$((umHeight * 2)) 

    IFS='@3x' read -ra NAMES <<< "$f" #Convert string to array 

    basename=${NAMES[0]} 
    extension="${f##*.}" 

    fullnameOne=${NAMES[0]}.$extension 
    fullnameTwo=${NAMES[0]}@2x.$extension 

    sips -z "$oneWidth" "$oneHeight" "$f" --out "$DIRNAME"/"$fullnameOne" 
    sips -z "$twoWidth" "$twoHeight" "$f" --out "$DIRNAME"/"$fullnameTwo" 

done 

Идея заключается в следующем:

  1. я правая кнопка мыши на куче изображений, имена которых содержат @3x, как [email protected], [email protected] и т. д.
  2. Я хочу, чтобы скрипт генерировал @2x и @1x версии файлов, переименовывая их [email protected], [email protected], file.png и ball .jpg соответственно.
  3. Сценарий должен уважать формат. Если файл PNG, выход должен быть PNG и тот же для JPG.

Этот сценарий, который вы видите выше, работает от терминала, но не от автомата. На автомате сценарий генерирует только один файл с именем Users.

Что не так?

+0

Я скучаю по [shebang] (https://en.wikipedia.org/wiki/Shebang_%28Unix%29). – Cyrus

+0

'IFS' не работает так, как вы думаете. Проверьте значение '$ f' по сравнению с результирующим значением' $ basename'. – chepner

ответ

1

Что не так?

Вероятно, аргументы сценария. Чтобы проверить эту гипотезу, добавьте

printf '<%s>\n' "[email protected]" >$HOME/debug.out 

после currentDirectory=$(pwd).

Если это не поможет, добавьте set -x и переадресовывайте stderr в место, где вы можете его найти.

+0

Каждый аргумент, вероятно, будет полным путем, '/ Users/someone/path/to/file @ 3x.png'. – chepner

+0

спасибо !!!!!!!!!! – SpaceDog