bash Variable per Script auslesen

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Christopy
User
Beiträge: 131
Registriert: Montag 15. Dezember 2003, 22:39

Ich möchte ein einem Script einen Variablennamen übergeben. Das Scripst soll einfach nur den Variablenwert ausgeben. Ich hatte an folgendes gedacht:

Code: Alles auswählen

#! /bin/bash
echo $1
Aber wie übergebe ich nun den Variablennamen beim Aufruf? Oder hat jemand evt. eine bessere Lösung? Kenn mich da leider nicht aus :(
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi Christopy,

hab mal etwas rumprobiert ;)

Code: Alles auswählen

#!/bin/bash
expr `set|grep $1=` : ".*=\(.*\)"
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
[code]#!/usr/bin/env python
import this[/code]
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Guten Morgen!

Meinst Du vielleicht so etwas:
script1.sh

Code: Alles auswählen

#!/bin/bash
wert="GutenMorgen"
. script2.sh $wert
script2.sh

Code: Alles auswählen

#!/bin/bash
echo $1
Gruß, mawe
Christopy
User
Beiträge: 131
Registriert: Montag 15. Dezember 2003, 22:39

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:

Code: Alles auswählen

#!/bin/bash
eval echo $1 
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 :roll: )

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.
seli
User
Beiträge: 12
Registriert: Montag 4. Oktober 2004, 22:58
Kontaktdaten:

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
[size=75]:wq[/size]
Antworten