Erfassen Sie die Ausgabe eines bash-Befehls, parsen Sie ihn und speichern Sie ihn in verschiedenen bash-Variablen

8

Erläuterung:

Ich habe ein kleines bash Skript, das einfach irgendeinen Linux Befehl ausführt (z. B. ifconfig )

Die typische Ausgabe von ifconfig ist etwa so:

%Vor%

Nun wird die gesamte -Ausgabe in den meisten Fällen in eine Datei / Variable gespeichert und auf dieser Grundlage analysiert. Ich möchte jedoch wissen, ob es überhaupt möglich ist, spezifische Teile der Ausgabe in mehr als einer Variable zu speichern (sagen wir eine bash Variable namens ${IPETH0} , um die IP zu tragen Adresse 10.106.145.12 von eth0 und ${IPLO} , um die IP-Adresse 127.0.0.1 von lo im obigen Beispiel zu tragen, ohne ifconfig-Befehl zweimal auszuführen ).

Ähnlich wie der Befehl tee mit der Eingabe funktioniert, aber ich möchte dies für die Ausgabe tun und die Ausgabe in 2 oder more speichern Variablen auf einmal. Irgendwelche Ideen?

    
Arpith 26.08.2013, 18:13
quelle

3 Antworten

7
%Vor%

Dies nimmt die Reihenfolge der Schnittstellen eth0 und lo an, aber es zeigt die Grundidee.

    
Adrian Frühwirth 26.08.2013, 18:21
quelle
3

Sie können awk und bash Arrays verwenden:

%Vor%

Dann können Sie tun:

%Vor%     
anubhava 26.08.2013 18:19
quelle
2

Sie können jede Zeile von ifconfig lesen und Variablen setzen:

%Vor%     
michael501 26.08.2013 18:26
quelle

Tags und Links