Script bash 'aperto con' OSX


8

Ho uno script bash, potenzialmente molti di loro in effetti, con cui mi piacerebbe poter aprire i file nel Finder di OSX.

È un concetto davvero molto semplice, ma per qualche ragione gli script bash sono disattivati ​​nella finestra di dialogo "Apri con" del Finder.

Capisco che ci sono vari modi di usare applecript o packaging come app ... ma non sono stato in grado di capire nulla di tutto questo e non voglio davvero imparare un'altra lingua solo per questo banale compito - qualcuno mi potrebbe nutrire come fare questo?

Grazie!

Risposte:


11

Non è possibile. Launch Services funziona con identificatori di applicazioni e gli script bash non li hanno.

È necessario creare un'applicazione wrapper utilizzando Automator.

  1. Avvia Automator
  2. Seleziona applicazione
  3. Cerca l' azione Esegui script shell e aggiungila a destra.
  4. Passa input come argomenti
  5. Inserisci la tua sceneggiatura lì
  6. Salva da qualche parte

Ecco la mia versione, utilizzando l' utilità da riga di comando Growl :

inserisci qui la descrizione dell'immagine

Risultato:

inserisci qui la descrizione dell'immagine


Puoi vedere l'effetto che questo cambiamento ha su ~/Library/Preferences/com.apple.LaunchServices.plistquando cambi tutto :

inserisci qui la descrizione dell'immagine

("Test" è il nome che ho dato alla mia applicazione Automator)


Grazie. L'ho dato un vortice ma provo ad aprirlo con l'app creata da Automator che dice semplicemente L'azione "Esegui script shell" ha riscontrato un errore. Controlla le proprietà dell'azione e prova a eseguire nuovamente il flusso di lavoro. Qual è il messaggio di errore meno utile che ho visto da un po 'di tempo!
ricco il

@Rich Funziona con lo script predefinito nell'azione di esecuzione dello script shell? O nemmeno allora? Ti sei ricordato di cambiare la preferenza di input pass ? Provi a fare doppio clic sull'applicazione, a trascinare i file sull'applicazione o ad aprire solo il file associato? Cosa succede se lo avvii negli altri modi?
Daniel Beck

Grazie. Non sono sicuro di come vedresti l'output da quello predefinito in quanto chiama semplicemente cat, ma sembra che non abbia commesso errori. Anziché fare in modo che l'app chiami il mio script da una posizione non standard, ho creato uno script in / usr / local / bin e poi ho scoperto che se avessi provato a eseguirlo si lamentava che c'erano troppi livelli di collegamenti simbolici (1 ?! ) Invece ho appena copiato la sceneggiatura lì e ora sembra funzionare. Grazie!
ricco il

1

Ho seguito le istruzioni di Daniel Beck con alcune modifiche e ho fatto in modo che funzionasse per i file URL che volevo aprire in Chrome (Firefox avrebbe funzionato anche) su un Mac.

Lo script che ho usato è:

sed 's/^URL=/URL=/' "$1" | grep -m 1 '^URL=' | sed 's/^URL=//' | tr -d '\r' | xargs open -a "Google Chrome"

Questo analizza l'URL = linea da un tipico file URL che assomiglia a:

[InternetShortcut]
URL=http://www.docircuits.com/pricing
IDList=
HotKey=0
IconFile=O:\Apps\Firefox\Data\profile\shortcutCache\4t0JW4mY1qRPhiYz1fY3dw==.ico
IconIndex=0

Salvare lo script di Automator in un posto come la directory ~ / Library. Ho chiamato il mio OpenUrl.app.

Ora vai a un file URL da qualche parte e apri il popup "Ottieni informazioni". Modifica il comando Apri con nello script OpenUrl.app. Prova con solo uno o fai clic su "Cambia tutto ..." La prima volta che ho fatto clic su di esso ha dato un errore, ma sembrava funzionare la seconda volta.

Nello sviluppo di questo ho ricevuto gli errori "Esegui script shell", ma ciò era dovuto a errori reali nello script. Penso che il problema chiave con lo script di Daniel sia che non gestisce gli spazi nel nome del file che si tenta di aprire.


-1

Utilizzare reattach-to-user-namespace, dal repository o con brew install reattach-to-user-namespace. Funziona in Sierra, non sono sicuro di altri sistemi operativi.

Una volta installato, usalo nello script bash in questo modo:

reattach-to-user-namespace open a_cool_file.png


Questo non sembra rispondere alla domanda. L'OP vuole usare la funzione "Apri con" del Finder per aprire un file con uno script Bash. Fornire supporto per gli appunti in Tmux e Screen non aiuta a farlo, soprattutto perché non c'è alcuna indicazione che Tmux o Screen siano coinvolti.
8
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.