/ / Wie exportiert man automatisch die Umgebungsvariable Oracle, um ein Ruby-Skript auszuführen? - Rubin, Orakel

Wie Orakel-Umgebungsvariable automatisch exportieren, die erforderlich ist, um ein Ruby-Skript auszuführen? - Rubin, Orakel

Mein Ruby-Skript erfordert eine Verbindung zu einem OracleDatenbank. Also muss ich ORACLE_HOME und LD_LIBRARY_PATH korrekt exportieren, bevor das Skript ausgeführt wird. Gibt es eine Möglichkeit, diese env-Variablen ohne Shell-Skript zu exportieren? Ich habe versucht, ENV ["ORACLE_HOME"] = "/ usr / local / oracle_client" in die erste Zeile des Skripts zu setzen, und es funktioniert nicht. Jetzt funktioniert die einzige Möglichkeit, ein Shellskript zu schreiben, in das diese Variablen exportiert und dort ruby ​​ausgeführt werden. Das Shell-Skript sieht folgendermaßen aus:

export ORACLE_HOME = "/ usr / local / oracle_client" export LD_LIBRARY_PATH = "/ usr / local / oracle_client / lib" ruby myscript.rb --options

Es ist irgendwie hässlich, weil der Benutzer in das Internet gehen mussShell-Skript zum Ändern von Optionen. Ich frage mich, ob es einen besseren Weg gibt. Der Benutzer kann dies einfach über die Befehlszeile tun: ruby ​​myscript.rb --options

Antworten:

1 für die Antwort № 1

Warum nicht die Ruby-Optionen als Argumente für das Shell-Skript angeben? Z.B.,

#!/bin/bash
export ORACLE_HOME="/usr/local/oracle_client"
export LD_LIBRARY_PATH="/usr/local/oracle_client/lib"
ruby myscript.rb $*

Natürlich möchten Sie vielleicht Argumentationsüberprüfungen usw. hinzufügen, aber dies gibt die Idee.


1 für die Antwort № 2

Warum rufen Sie es nicht an? Kernel.system?

system("export ORACLE_HOME="/usr/local/oracle_client"")
system("export LD_LIBRARY_PATH="/usr/local/oracle_client/lib"")