Ho uno script bash che funziona come un thread. Ora mi piacerebbe trasformarlo in un servizio con Automator.
 Input è impostato su  File immagine  in Automator e l'azione dello script della shell è impostata su    Pass input as arguments    . 
Il problema:
Automator ha due problemi:
- La funzione
- La condizione if
Tuttavia, nessun errore compare nel log e il risultato dello script della shell è vuoto:
(
  ""
)
Cosa fa lo script:
 La funzione     createDatePath    controlla se l'immagine passata è stata formattata come   2020-08-10-demo_image.jpg    e crea una cartella   YEAR/MONTH/    nella directory di destinazione. La  condizione se  esegue azioni sull'input a seconda che si tratti di un JPEG o di un PNG e se la stringa di data è seguita da una stringa   -qq-   . Questa è una versione ridotta dello script (ne ho alcune di più se le condizioni, ma non ne abbiamo bisogno qui, credo). 
Lo script:
backup=/Users/me/Desktop/A/backup/
targetPath=/Users/me/Desktop/A/output/
function createDatePath {
    [[ "$i" =~ ^([0-9]{4})-([0-9]{2}) ]] && \
    mkdir -p "$targetPath${BASH_REMATCH[1]}/${BASH_REMATCH[2]}";
}
for i in "$@"; do
    cp "$i" "$backup"
    if [[ "$i" =~ ^([0-9]{4})-([0-9]{2})-([0-9]{2})-([^q]{2}).+\.((jpg)|(jpeg))$ ]]; then
        createDatePath;
    else
        exit 0;
    fi
done
Schermata:
 
Linkpercompletareloscriptdellashell:
Se qualcuno potesse spiegarmi perché questo non funziona e come farlo funzionare sarebbe fantastico.
  PS: nello script non-Automator la prima cosa che ho fatto è stata   cd    nel percorso di origine, ma dal momento che questo finirà come un servizio che prende i file come input, la mia ipotesi è che posso omettere questo (l'aggiunta di   cd "$@"    non ha funzionato)