我有一个在 OS X Lion 和 Debian GNU/Linux 7.0 (wheezy) 上运行的 Rails 脚本。它归结为一个简单的脚本:
#!/usr/bin/env /opt/thermyos.com/server/script/rails runner
ENV.each do |k, v|
puts "#{k} = #{v}"
end
问题是 /usr/bin/env。如图所示,此脚本不会在 Debian 上运行,从而产生错误/usr/bin/env: /opt/thermyos.com/server/script/rails runner: No such file or directory
。在 OS X 上它工作正常,编写 Rails 环境。但是,如果我删除 /usr/bin/env 这样 shebang#!/opt/thermyos.com/server/script/rails runner
就可以在 Debian 上正常工作,但在 OS X 上却不行(Rails 未加载,因此每一行都失败)。从哪里启动脚本或使用相对路径还是绝对路径都没有关系。印刷环境几乎相同。为什么在 Debian 上失败,因为它正是运行时的 shebang 输出rails runner
?FWIW,/opt/thermyos.com/ 是从 Debian 导出的,并且 NFS 安装在 OS X 上。