2012-05-11 24 views
3

我在我的(第一個)OSX Lion Widget中有這個。OSX Lion Dashboard Widget ::如何執行一個shell腳本

var test = widget.system("/Users/Me/testscript",null); 

test.outputString is undefined and test.errorString is sth。這樣

DashboardClient[xxxxx:xxx] *** NSTask: Task create for path '/Users/Me/testscript' 
failed: 22, "Invalid argument". Terminating temporary process. 

testscript只包含一個echo "here"

據我瞭解通過谷歌...... NSTask以某種方式包裝我的電話,並預計實際可執行二進制文件。 但是,是否有一種方法可以像這樣在一個小部件中執行這個bash腳本可執行文件?

+1

你的腳本是否有hashbang?第一行應該是'#!/ bin/bash'或類似的。 – jimw

+0

不,不會,請嘗試 – Allisone

+0

wohoo!謝謝jimw,如果你想你可以讓它回答 – Allisone

回答

4

爲了一個shell腳本被稱爲像一個二進制文件,它需要一個「hashbang」作爲文件的第一行:

#!/bin/bash 

告訴使用的腳本解釋器的操作系統。沒有它,操作系統會對該文件的處理方式感到困惑,因爲它給了你所看到的錯誤。

+0

對不起,並再次感謝:D – Allisone

+0

沒問題,很高興它幫助。 – jimw