2012-04-05 23 views
14

2 parte domanda:programmi aperti con AppleScript

Sto semplicemente cercando di eseguire programmi che utilizzano AppleScript dal terminale, così ho provato:

$ osascript tell application "iTunes" to activate 

e ottenere l'errore:

osascript: tell: No such file or directory 

Anche l'assegnazione del percorso completo al programma non ha funzionato. Cosa mi manca? La seconda parte della domanda è ciò che alla fine voglio usare per AppleScript. Mi piacerebbe usarlo per aprire un'applicazione che ho creato usando py2app. Apple può aprire qualsiasi app Mac o solo alcune già compatibili.

Grazie

risposta

19

Prova questo. Si noti che si utilizza "-e" quando si sta scrivendo il comando. Senza "-e" si darebbe un percorso verso un applecript da eseguire. Notare anche che il comando stringa deve essere tra virgolette.

osascript -e "tell application \"iTunes\" to activate" 

E se si dispone di un multi-linea di AppleScript si utilizza "-e" prima di ogni riga come questa ...

osascript -e "tell application \"iTunes\"" -e "activate" -e "end tell" 

Se si desidera aprire un'applicazione basta usare l'unix "aperta "command ...

open "/path/to/application" 

Se si voleva aprire un'applicazione utilizzando AppleScript e la 'attivare' il comando non funziona (dovrebbe funzionare per quasi tutto però) poi dire il Finder per aprirlo. Ricordate che AppleScript utilizza i percorsi delimitati da due punti ...

osascript -e "tell application \"Finder\" to open file \"path:to:application\"" 
+0

E 'possibile dire quale spazio di lavoro per essere aperto su? –

5

Prova:

do shell script "open /Applications/iTunes.app" 
4

è necessario mettere le virgolette singole intorno al tell:

osascript -e 'dire app "iTunes" a attivare'

altrimenti si sta definendo una variabile quando si esegue -e

+0

Puoi indicare qualche documentazione dove questo è spiegato? Guardando attraverso la pagina man per osascript non vedo questo menzionato. – regulus6633

7

In un sh bash ell (come nel Terminale), puoi inviare più linee ad osascript usando un "documento qui".

osascript -e "tell application \"iTunes\"" -e "activate" -e "end tell" 

diventa

osascript <<EOF 
tell application "iTunes" 
    activate 
end tell 
EOF 

Come un hacker Unix vecchia scuola, risparmio questi piccoli frammenti nella mia directory $ HOME/bin e li chiamo dalla riga di comando. Ancora imparando i particolari, però.

Alan

1

Anche io sono nuovo di script.

Sono confuso a così scruto un saggio di nome AppleScript Language Guide e quando vado attraverso comandi di script articoli, vengo a sapere che se si vuole attivare un'applicazione in mac os con applescript editor è necessario digitare sotto il codice nel vostro editor e quindi compilare e gestili!può questa risposta vi aiuterà, ecco il codice:

// applescript editor code  

----------  

activate application "iTunes" line 1  

----------  

tell application "iTunes" to activate line 2 
2

alternativa al osascript:

open -a Calendar 

vicinanze:

pkill Calendar 
+0

A cosa serve -a? Puoi fornire una spiegazione? – user1271772

+0

@ user1271772, leggi la pagina man per 'open' _command_, ti dirà a cosa serve' -a'! – user3439894

+0

@ user3439894: A cosa serve? – user1271772

Problemi correlati