Automator sceglie la cartella finder ed esegue lo script shell


2

Ho un semplice script di shell che vorrei incorporare in un flusso di lavoro dell'automatore. Devo solo fare doppio clic sull'applicazione, selezionare una cartella del Finder ed eseguire il comando. Al momento è in esecuzione nella mia directory utente predefinita. Ho trovato come farlo come un servizio, ma mi piacerebbe che funzionasse come un'applicazione. Come posso eseguire nella cartella scelta? Facoltativamente, anche un trascinamento della selezione sull'applicazione sarebbe utile.

inserisci qui la descrizione dell'immagine

Risposte:


5

Puoi semplicemente passare la cartella selezionata allo script della shell selezionando "come argomento" dal menu a discesa "passa input:" e quindi aggiungendo "$@"nel punto dello script in cui desideri utilizzare il percorso della cartella.

Per utilizzare il trascinamento della selezione, è sufficiente rimuovere l'azione "chiedi elementi di ricerca" e lasciare che "esegui script shell" riceva l'input da "l'applicazione può ricevere file e cartelle come input".


Ho visto il comando "$ @" ma non ero sicuro di come usarlo. Ho semplicemente messo "cd $ @" all'inizio della mia sceneggiatura e ho risolto il problema. Grazie per l'aiuto.
Corey Riggle

In realtà, raccomanderei cd "$1"invece di usarlo . $@si espande nell'elenco di tutti gli argomenti passati allo script e se c'è più di uno cdsi accorgerà che non può andare più di un posto; $1si espande al primo argomento, quindi se riesci a passarlo più di uno andrà semplicemente con il primo. Inoltre, assicurati di usare le doppie virgolette attorno per evitare che la shell venga confusa da caratteri divertenti (come gli spazi) nel percorso della cartella.
Gordon Davisson,

@Gordon In questo caso, con la casella di controllo "Consenti selezione multipla" non selezionata, in realtà non verrà mai più di un argomento passato allo script della shell. Mettere $ @ tra virgolette è davvero necessario (come ho fatto nella mia risposta originale).
Asmus,

-1

Il modo in cui lo faccio è definire il percorso di una variabile, quindi aprire il flusso di lavoro in un editor di testo, cercare la variabile, copiare la stringa, quindi utilizzare $ (stringa) in qualsiasi punto del flusso di lavoro (inclusi gli script di shell).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.