环境变量扩展在Shell脚本的第一行中



我的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。请参阅此处。

最新更新