Voglio creare un servizio utilizzando Automator per eseguire uno script di shell su tutti i file in una cartella, ad esempio cancella tutti i file di registro. Quello che ho fatto è
- Creato un nuovo servizio in automator.
- Aggiunta un'azione "Esegui script shell". Ho cambiato questo per 'pwd' per ora.
- Selezionato "Il servizio riceve le cartelle selezionate".
- Ho cercato di eseguirlo, ma ho ricevuto un messaggio. "Per testare questo servizio all'interno di Automator, aggiungere l'azione" Trova elementi specifici del Finder "all'inizio del flusso di lavoro: rimuovere o disabilitare l'azione prima di eseguire il flusso di lavoro all'esterno di Automator.
- OK. Quindi aggiungo "Ottieni elementi specifici del Finder". Aggiunta una directory 'test' all'elenco di elementi.
Ora, quando eseguo lo script, la finestra dei risultati stampa la mia directory home.
Altrove, ho letto che forse devo aggiungere
cd "$1"
all'inizio del mio script. L'ho fatto ma stampa ancora la mia home directory. Come faccio a ottenere questa cosa per stampare la directory che ho selezionato in "Trova elementi specifici del Finder?"
Modificato per aggiungere
Ecco una schermata di uno script che funziona.
Eccounoscreenshotdiunoscriptchenonfunziona.
Ilsolitomododitrattarel'errore"nessuna corrispondenza trovata: * .log" sarebbe di reindirizzare l'output dell'errore su null. Sostituire la riga "rm" di
find . -name "*.log" -print0 | xargs -0 rm -rf
Funziona comunque. Questo sembra più difficile di quanto dovrebbe essere.