Seite 1 von 1
bash Variable per Script auslesen
Verfasst: Sonntag 3. Oktober 2004, 23:18
von Christopy
Ich möchte ein einem Script einen Variablennamen übergeben. Das Scripst soll einfach nur den Variablenwert ausgeben. Ich hatte an folgendes gedacht:
Aber wie übergebe ich nun den Variablennamen beim Aufruf? Oder hat jemand evt. eine bessere Lösung? Kenn mich da leider nicht aus
Verfasst: Montag 4. Oktober 2004, 00:15
von Dookie
Hi Christopy,
hab mal etwas rumprobiert
das ganze holt mit set|grep $1= das Name/Wert-Paar das mit dem Namen in $1 beginnt und filtert mit expr und dem regulären Ausdruck den Wert heraus
Gruß
Dookie
Verfasst: Montag 4. Oktober 2004, 05:26
von mawe
Guten Morgen!
Meinst Du vielleicht so etwas:
script1.sh
script2.sh
Gruß, mawe
Verfasst: Montag 4. Oktober 2004, 09:06
von Christopy
Dank euch!
@Dookie
Ups. Das verstehe ich noch nicht wirklich. Muss ich nochmal in Ruhe überdenken... Danke auf jeden Fall!
@mawe
Nicht ganz. So wird script2 ja schon mit "GutenMorgen" aufgerufen. script 2 soll aber eigentlich "GutenMorgen" ermitteln.
Nach langen Versuchen hab ich auch noch was gefunden:
vars.sh:
Das kann man nun mit ./vars.sh \$VARIABLENNAME
oder direkt aus Java mit
Code: Alles auswählen
String[] cmd = { "./vars.sh", "$VARIABLENNAME" };
Process p = Runtime.getRuntime().exec( cmd );
aufrufen. (Warum ich dort das Dollarzeichen nicht escapen muss ist mir ein Rätsel
)
Wenn jemand noch andere Idee hat, wie ich zur Laufzeit aus Java an Unix-Umgebungsvariablen rankomme (die sich zur Laufzeit auch ändern können) freue ich mich über Hilfe.
Verfasst: Dienstag 5. Oktober 2004, 08:41
von seli
Ich kapier nicht so ganz, was du tun möchtest.
Du schreibst von einem Script, und kommst dann mit Java Code, ähm ich kann dir nicht ganz folgen...
PS: Bei Java musst du $ nicht escapen, weil zB in einem Shell script variablen $foo heissen, bei Java (und Python usw) heissen sie foo