Ich arbeite derzeit an einem Shell-Skript für eine kleine Firma Mac-Umgebung. Die Absicht des Skripts besteht darin, dem Dock ein paar Anwendungen hinzuzufügen.Mac Shell - Befehl funktioniert in Terminal aber nicht in Shell
Ich kann die Befehle über Terminal einzeln ausführen, aber ich kann sie nicht in einem Shell-Skript ausführen. Das Skript beendet nur den "killall Dock" -Befehl, keine Fehler oder Warnungen.
Dies ist der Code, den ich versucht:
#!/bin/sh
defaults write com.apple.dock persistent-apps -array-add '<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/Applications/Firefox.app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'
defaults write com.apple.dock persistent-apps -array-add '<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/Applications/Calculator.app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'
defaults write com.apple.dock persistent-others -array-add '<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/Users/Shared/RMS.fmp12</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'
killall Dock
exit 0
Update:
ich den Befehl 'defaults' auszuführen versucht, während in bash (dh 'sudo bash'), und es scheint nicht über irgendein Effekt.
Wenn ich den gleichen Befehl in einem normalen Terminal ausführen, funktioniert es.
defaults write com.apple.dock persistent-apps -array-add '<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/Applications/Firefox.app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'
Terminal führt die Shell aus. Sie müssen genauer angeben, wann das Skript fehlschlägt. –
Das ergibt keinen Sinn. Ich nehme an, wenn Sie "das Skript ausführen" sagen, Sie meinen, sie vom Terminal aus auszuführen, während Sie normalerweise eingeloggt sind? – Droppy
Ich kann jede Zeile dieses Shell-Skripts in ein Terminalfenster eingeben, während ich als Administrator angemeldet bin und jede Zeile einzeln arbeitet. Wenn ich jede Zeile in ein Shell-Skript platzieren und versuchen, das Shell-Skript über Terminal auszuführen. d. h. "sudo ./script.sh" scheint nur der killall Dock-Befehl zu funktionieren, nichts anderes ändert sich. – user1553006