有一个相对的shebang线

时间:2011-06-24 19:57:31

标签: ruby-on-rails ruby scripting cron shebang

我正在编写一个rails应用程序,需要通过./script/runner

运行脚本

虽然我可以把

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

在顶部,它不会在生产中工作,它需要更像

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

由于./script不在我的路径中,而且我不希望这样,我怎么能允许这样设置呢,

我正在使用cron作业在Linux机器上运行

2 个答案:

答案 0 :(得分:9)

在shebang行中使用env查看路径中的内容:

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

答案 1 :(得分:0)

在你的(ruby)脚本的顶部使用它来重新执行它在本地./script/runner下(然后应该定义Rails以避免无限循环)

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

(所以在顶部使用常规' ruby​​' shebang,无论是#!/usr/bin/ruby还是#!/usr/bin/env ruby还是其他任何风味