現在、中小企業のMac環境用のシェルスクリプトを作成しています。スクリプトの目的は、ドックにいくつかのアプリケーションを追加することです。Macシェル - コマンドはターミナルでは動作しますが、シェルでは動作しません
端末経由でコマンドを個別に実行することはできますが、シェルスクリプトで実行することはできません。スクリプトは「killall Dock」コマンドを完了するだけで、エラーや警告は出力されません。
これは私がしようとしたコードです:
#!/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
更新:
私はbashで(すなわち、「sudoのbashの」)しながら、「デフォルト」コマンドを実行しようとしましたし、持っているように見えていません任意の効果。
私は正常な端末で全く同じコマンドを実行すると動作します。
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>'
ターミナルはシェルを実行します。スクリプトがいつ失敗するかについて、より具体的にする必要があります。 –
それは意味をなさない。私はあなたが「スクリプトを実行する」と言ったときに、通常ログインしている間にターミナルから実行することを意味します。 – Droppy
管理者としてログインしている間に、そのシェルスクリプトの各行をターミナルウィンドウに入力することができ、各行は個別に動作します。 私は各行をシェルスクリプトに入れ、ターミナル経由でシェルスクリプトを実行しようとします。すなわち "sudo ./script.sh" killall Dockコマンドだけがうまくいくように見えますが、それ以外の変更はありません。 – user1553006