Bash shell脚本第一行中的环境变量扩展

Bash shell脚本第一行中的环境变量扩展,bash,environment-variables,interpreter,Bash,Environment Variables,Interpreter,My 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 失

My 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
。请参阅。

谢谢!工作起来很有魅力!而ruby已经在路上了,所以我需要的只是shebang线。