Il comando terminale in Applescript non funziona

0

Sto cercando di ottenere un comando da terminale per funzionare in Applescript e ottengo l'errore "Previsto fine riga ma trovato identificatore". Come posso risolvere questo problema?

Questo è il mio codice

try
    do shell script "defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}'; killall Dock" with administrator privileges
end try 
    
posta superuserdo 19.08.2016 - 04:24
fonte

1 risposta

1

Non devi utilizzare alcuni caratteri speciali (ad esempio " o \ ) tra le virgolette dopo la parte do shell script di Apple Scripts o devi sfuggire a una barra rovesciata.

Nel tuo esempio la seconda virgoletta viene interpretata come la fine del comando shell: defaults write com.apple.dock persistent-apps -array-add '{ che non è una linea valida.

Quindi sfuggi alle virgolette interne con una barra rovesciata e Apple Script dovrebbe funzionare:

try
    do shell script "defaults write com.apple.dock persistent-apps -array-add '{\"tile-type\"=\"spacer-tile\";}'; killall Dock" with administrator privileges
end try 

Se hai un comando di shell come questo:

... awk '/disk/ {gsub("\"",""); print $NF}' ...

devi sfuggire a ogni " e \ con una barra rovesciata:

try
    do shell script "... awk '/disk/ {gsub(\"\\"\",\"\"); print $NF}' ..."
end try 
    
risposta data 19.08.2016 - 19:26
fonte

Leggi altre domande sui tag