El comando del terminal en Applescript no funciona

0

Estoy intentando que un comando de terminal funcione en Applescript y me aparece el error "Se esperaba el final de la línea pero se encontró el identificador". ¿Cómo puedo solucionar esto?

Este es mi código

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

1 respuesta

1

No debes usar algunos caracteres especiales (por ejemplo, " o \ ) entre las comillas después de la parte do shell script de Apple Scripts o debes escapar de ellos con una barra diagonal invertida.

En su ejemplo, la segunda comilla se interpreta como el final del comando de shell: defaults write com.apple.dock persistent-apps -array-add '{ que no es una línea válida.

Escape las comillas internas con una barra diagonal invertida y su Apple Script debería funcionar:

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

Si tiene un comando de shell como este:

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

tendrías que escapar cada " y \ con una barra invertida:

try
    do shell script "... awk '/disk/ {gsub(\"\\"\",\"\"); print $NF}' ..."
end try 
    
respondido por el klanomath 19.08.2016 - 19:26

Lea otras preguntas en las etiquetas