我的ruby shell脚本在脚本的第一行中指定了Ruby解释器为:
#!/Users/me/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
问题是,当我升级到新的Ruby版本时,我必须编辑所有脚本文件以更新解释器。有一个可用的环境变量,即$ my_ruby_home,它扩展到当前路径(减去/bin/ruby部分)。但是,我所有使用的尝试:
#!{$MY_RUBY_HOME}/bin/ruby
#!${MY_RUBY_HOME}/bin/ruby
etc
失败("不良解释器:无此类文件或目录")。我怀疑环境扩展不是在第一行上完成的,所以我可能只是不幸。如果有人能够在shell脚本中的程序定义行上使用环境变量扩展。
将${MY_RUBY_HOME}/bin
放入您的$PATH
并使用#!/usr/bin/env ruby
。请参阅此处。