In einer ausführbaren Datei geben Sie die Umgebung mit einem Shebang an:
#!/usr/bin/env ruby
# ruby code here
Was aber, wenn Sie mehrere mögliche Umgebungen angeben möchten? Wenn Sie beispielsweise mehrere Versionen von Ruby installiert haben, möchten Sie möglicherweise Folgendes tun
#!/path/to/better/ruby/version
#!/path/to/alternative/ruby/version
# ruby code here
Wie können Sie mehrere mögliche Umgebungen für eine einzelne ausführbare Datei angeben?
$@
wenn Sie das endgültige Skript aufrufen, um mögliche"$ruby" myscript.rb $@
Ich werde mrb widersprechen und sagen, dass Sie Alternativen machen können, ohne das "#!" Linie.
Angenommen, Sie haben ein Ruby-Skript mit
#!/usr/bin/env ruby
der ersten Zeile.Wenn Sie
/path/to/better/ruby/version/whatever
das Skript ausführen möchten , legen Sie zunächst die Umgebungsvariable PATH fest/path/to/better/ruby/version
:Sie möchten
/usr/local/bin/ruby
das Skript ausführen? Stellen Sie PATH entsprechend ein:Beachten Sie, dass das Fummeln mit PATH andere Probleme verursachen kann, wenn sich die ausführbare Ruby-Datei, mit der Sie das Skript ausführen möchten, mit anderen alternativen Programmen im selben Verzeichnis befindet . Zum Beispiel, wenn
/usr/local/bin
BSD hatcat
,grep
,sed
in es so gut wieruby
, dann , wenn Sie setzenPATH=/usr/local/bin:$PATH
Sie die BSD ausführbaren Dateien anstelle von Linux ausführbaren Dateien zu bekommen. Das könnte ein Problem darstellen.quelle