2011-06-24 49 views
4

我正在寫一個Rails應用程序,並需要通過./script/runner有一個親戚家當線

運行腳本來,而我可以把

#!/home/cannon/src/timetracker/script/runner 

在頂部,在生產不會工作需要它更喜歡

#!/var/www/loclahost/htdocs/timetracker/script/runner -e=production 

因爲./script是不是在我的道路,我不希望它是,我怎麼能允許這樣設置,

我使用cron作業來在Linux中

回答

9

使用env在家當線看東西的路徑運行:

#!/usr/bin/env ./script/runner 
+1

這是所有shebangs應該如何寫的,因爲這意味着您的腳本不需要在某個位置安裝程序。例如'#!/ usr/bin/env bash' – Dunes

+0

所以我可以傳遞一個相對路徑到env?將是相對於腳本的位置,或從它被稱爲,哪個idk哪裏cron的密碼是... – loosecannon

+1

哦,它是相對於你的密碼。克龍的手冊頁應該能夠告訴你。 –

0

使用此爲您的頂部(紅寶石)腳本,重新執行中它的本地./script/runner下(然後應該定義Rails的,所以你避免無限循環)

exec("./script/runner",$0,*ARGV) unless defined?(Rails) 

(因此在頂部使用常規的「紅寶石」家當,無論是它是#!/usr/bin/ruby#!/usr/bin/env ruby或其他什麼味道)