0 votos

El comando de terminal en Applescript no funciona

Estoy intentando que funcione un comando de terminal en Applescript y me sale el error "Se espera un final de línea pero se encuentra un 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

1voto

klanomath Puntos 19587

No debe utilizar algunos caracteres especiales (por ejemplo " o \ ) entre las comillas después del do shell script parte de Apple scripts o tienes que escapar de ellos con una barra invertida.

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

Así que escapa de las comillas interiores con una barra invertida y tu 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 tienes un comando de shell como este

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

tendrías que escapar de cada " y \ con un golpe de espalda:

try
    do shell script "... awk '/disk/ {gsub(\"\\\"\",\"\"); print $NF}' ..."
end try

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X