0 votes

La commande du terminal dans Applescript ne fonctionne pas

J'essaie de faire fonctionner une commande terminal dans Applescript et je reçois l'erreur "Expected end of line but found identifier". Comment puis-je corriger ce problème ?

Voici mon code

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 Points 63400

Vous ne devez pas utiliser certains caractères spéciaux (par ex. " ou \ ) entre les guillemets après le do shell script dans les scripts d'Apple ou vous devez les échapper avec un back slash.

Dans votre exemple, le deuxième guillemet est interprété comme la fin de la commande shell : defaults write com.apple.dock persistent-apps -array-add '{ qui n'est pas une ligne valide.

Donc, échappez les guillemets intérieurs avec une barre oblique inversée et votre script d'Apple devrait fonctionner :

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 vous avez une commande shell comme celle-ci :

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

vous devriez vous échapper de chaque " y \ avec un back slash :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X