Hallo Leute
Ich nutze ein SuSE Linux Enterprise Server 9 und schreibe Shellskripte mit bash. Ich habe jetzt ein kleines Problem: das Shellskript soll eine Textdatei auslesen, in der ein Pfadname drinnen steht (es geht um das Startskript zu einer Java-Anwendung und der Klassenpfad steht in einer Datei drinnen). Diesen Pfadnamen will ich in eine Environment-Variable übernehmen. Soweit geht es ja noch einfach.
In der Textdatei ist der Pfad aber ebenfalls mit einer Environment-Variable versehen. Diese soll dann automatisch aufgelöst werden.
Beispiel:
gegeben ist
export PROG\_HOME=/opt/prog
der Inhalt der Textdatei (z.b. classpath.txt) ist
$PROG\_HOME/lib/liba.jar:blush:PROG\_HOME/lib/libb.jar
das Skript soll nun die Textdatei auslesen und den Inhalt der Datei in die Environment-Variable CLASSPATH schreiben. Geht ja z.b. mit
CLASSPATH=$(
Problem: in CLASSPATH steht nun "$PROG\_HOME/lib/..." und nicht "/opt/prog/lib/...".
Gibt es eine einfache Möglichkeit, die Variablen automatisch zu ersetzen? Was natürlich gehen würde, wäre ein "sed" mit einer Textersetzung davor zu hängen, aber da müsste ich jede bekannte Variable manuell ersetzen. Ist praktikabel im obigen Beispiel mit nur einer zu ersetzenden Variable. Ich denke da aber auch an eine allgemeine Verwendbarkeit, in der ALLE aktuell gesetzten Variablen automatisch ersetzt werden können.
Gibt es da einen Standard-Befehl dafür in der bash bzw. SLES? Extra ein Tool nachinstallieren ist grundsätzlich möglich, würde ich aber gerne vermeiden. Falls irgendwie möglich, würde ich gerne mit den Standard-Gnu-Tools auskommen.
lg
Erwin