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