実行可能ファイル内で shebang を使用して環境を指定できます。
#!/usr/bin/env ruby
# ruby code here
しかし、できるだけ多くの環境を指定するにはどうすればよいですか?たとえば、複数のバージョンのRubyがインストールされている場合は、次のことができます。
#!/path/to/better/ruby/version
#!/path/to/alternative/ruby/version
# ruby code here
単一の実行可能ファイルに対して可能な複数の環境を指定する方法は?
ベストアンサー1
短い答えはできないということです。
#!/usr/bin/env ruby
単純な代わりに使用の基本的なアイデア#!/usr/bin/ruby
は、ユーザーパスで最初のRubyバイナリを使用することです。さて、あなたのスクリプトは、Rubyがすべてのシステムで同じ場所にあることには依存しません。結局、「一般的な」ルビーの位置は、、、、/usr/bin/ruby
などになることができます。/usr/local/bin/ruby
/opt/ruby-1.8.7/bin/ruby
いくつかの値をハードコーディングしたり、いくつかの検索ロジックを実行したい場合は、いつでもラッパーシェルスクリプトを作成できます。
#!/bin/sh
for ruby in /usr/bin/ruby /usr/local/bin/ruby
do
if [ -x "$ruby" ]
then
"$ruby" myscript.rb
break
fi
done
動機が十分であればできます。Ruby(またはその他)スクリプトの挿入シェルスクリプトの内部。