Variablen verketten (mit Punkt)

G

guepier

Grünschnabel
Hallo,

wie kann man Variablen verketten, diese aber mit einem Punkt zusammensetzen?

Das Problem wurde auch schon hier besprochen:

http://www.unixboard.de/vb3/showthread.php?t=32030

Es funktioniert auch alles, aber leider eben nicht mit einem Punkt.

Hintergrund: Ich möchte IP-Adressen hochzählen, dazu muss ich diese zunächst in die Einzelteile zerlegen und dann zusammensetzen.

Danke schon mal.
 
Hallo
Wieder mal die alte Frage:
Welche Shell, welches OS?

In der Bash:
Code:
a=192;
b=168;
c=178;
d=1;
echo ${a}.${b}.${c}.$d
192.168.178.1

Aber um IP hochzuzählen, gibt es in der aktuellen Bash 3.xx einfachere Methoden.
Code:
for i in 192.168.{1,2,3}.{1..255}; do echo $i; done
Wobei die { 1..255} Notation erst ab bash 2.xx verstanden wird.
{ 1,2,3 } dagegen kennen auch ältere Versionen.

Gruß Wolfgang
 
> Hallo
> Wieder mal die alte Frage:
> Welche Shell, welches OS?

Sorry, tut mir leid. Ich arbeite im Support und sollte es besser wissen. Ich war nur ein bischen verzweifelt... Es ist Linux und die Bash.

Bei mir hat es nicht funktioniert.

Ich habe inzwischen weitergetestet und bin zu folgendem Ergebnis gekommen:

Ich habe mit set $ip die IP-Adresse auseinandergenommen, und dazu IFS=. geändert. Wenn ich die Variablen wieder zusammensetzen möchte erhalte ich in vielerlei Kombinationen nur seltsame Ausgaben. Da es wie oben beschrieben funktionieren MUSS habe ich mal $IFS zurückgesetzt und, voila!, es funktioniert.

Wenn ich mal groß bin werde ich es vielleicht auch mal verstehen...

Ich werde mich aber für die zweite Lösung entscheiden, sieht ja mal sehr gut aus :)

Danke für die Hilfe!

Gruß
 

Ähnliche Themen

Hilfe für ein shell script

Kernel Kaltstart / reboot?

NAS-Drive Mount in Bash-Script über crontab

Port Forwarding mit iptables

Wired-Lan komisches Verhalten

Zurück
Oben