我正在嘗試在登入時使用啟動代理來終止 Finder,然後重新啟動總查找器,自動套用 OS X 10.7 的 colorsidebar mod(該 mod 可以在這裡)。
如果我使用 launchagent 呼叫 shell 腳本,就可以了,如下所示:
<?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>Label</key>
<string>com.colorsidebar.root</string>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/POSIX/path/to/some/shell/script.sh</string>
</array>
</dict>
</plist>
然後在shell腳本中,我使用的是
#!/bin/bash
#
#This file kills the finder on user session start
#and re-launches TotalFinder
#
killall Finder
Open /Applications/TotalFinder.app
現在,當我嘗試將兩者結合時
<?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>Label</key>
<string>com.colorsidebar.root</string>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>killall Finder</string>
<string>open /Applications/TotalFinder.app</string>
</array>
</dict>
</plist>
它不起作用,控制台顯示以下錯誤:
2011 年 8 月 21 日 5:16:16.957 PM com.colorsidebar.root: /bin/bash: Killall Finder: 沒有這樣的檔案或目錄
答案1
bash
期望給予一個檔案名稱(即腳本)作為其參數。由於沒有名為“killall Finder”的文件,因此您會收到一條錯誤訊息。如果要將命令作為參數傳遞給 bash,則必須使用該-c
選項,並將命令作為單一參數傳遞:
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>killall Finder; open /Applications/TotalFinder.app</string>
</array>