Estoy tratando de escribir un archivo plist en el que cuando vuelvo del modo de suspensión, siempre quiero hacer mi volumen Mac a la cantidad mínima. Sin embargo, parece que el siguiente plist no funciona, con un error: 1:1: syntax error: Expected string but found end of script. (-2741)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>my.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>-e</string>
<string>"</string>
<string>set</string>
<string>volume</string>
<string>output</string>
<string>volume</string>
<string>0</string>
<string>"</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Además, cuando lo siguiente no funciona:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>my.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>-e</string>
<string>"set volume output volume 0"</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
El osascript
El comando funciona bien si lo ejecuto desde el Terminal, por lo que creo que se debe a la forma en que configuro mi lista de argumentos en el plist.
Entonces, ¿es factible tomar el argumento de la cadena como "~"
¿en el lanzamiento? ¿O hay algunas otras cosas que me estoy perdiendo aquí?
Sospecho que sería mejor escribir el osascript
en el shell script, y cargar el shell script para que el volumen del Mac se minimice... pero ¿es el enfoque correcto?
Utilizo OS X Mavericks 10.9.2.