Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
shell-programierung

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
alias_maya
Gast





BeitragVerfasst am: 19. Okt 2001 2:04   Titel: shell-programierung

Hi, Leute

Ich hab' zum Thema shell-programierung (bash) eine Frage:
Mein Script verwendet folgende Variablen:
DEVICE_1=eth0, DEVICE_2=eth1, DEVICE_3=eth2, usw. ...
Nun möchte ich den Inhalt einer dieser Variablen anhand ihrer Endnummer,
welche ebenfalls durch eine Variable definiert ist (zb:X=2) ausgeben lassen.
Ich hab's mit
echo "$DEVICE_$X"
versucht, aber die Ausgabe ist DEVICE_2 und nicht eth1.

Wäre toll, wenn mir jemand von Euch weiterhelfen könnte....

Gruß,
 

Jochen
Gast





BeitragVerfasst am: 19. Okt 2001 7:19   Titel: Re: shell-programierung

Die Ersetzung einer Variablen durch ihren Inhalt wird von der Shell vorgenommen. Dies passiert aber eigentlich nur einmal. Um einen 2. Durchgang der Substitutionsmechanismen zu erzwingen, verwendet man "eval":
code:

X=2
DEVICE_2=eth1
eval echo \$DEVICE_$X


Der erste (normale) Durchgang ersetzt $X durch 2 und entfernt den Backslash, lässt das folgende $ dafür aber in Ruhe. Der zweite, durch eval erzwungene Durchgang ersetzt dann den Ergebnistext "$DEVICE_2" durch "eth1".

Du weisst aber auch, dass die bash(1) Array-Variablen beherrscht? Da musst Du Dir diese Mühe nicht machen. Such in der bash(1)-manpage nach "Arrays", da wirst Du schnell fündig.

Jochen
 

alias_maya
Gast





BeitragVerfasst am: 19. Okt 2001 17:40   Titel: Re: shell-programierung

Hi,

@Jochen
danke für Dein Posting, das Script funktioniert jetzt so, wie ich mir das vorgestellt habe.
Zum Thema Array-Variablen, ich hab noch nicht ganz durchschaut, wie es damit funktionieren könnte,
mag aber auch daran liegen, das mir punkto Programierung einige Basic's fehlen...

Gruß, Peter
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy