Bash: Ausgabe zweier Befehle in einer Zeile

26/03/2014 - 08:25 von Wolfgang Klein | Report spam
Hallo!

Ich suche eine elegante Möglichkeit, die Ausgabe des Befehls

date; ping -c 1 -W 5 -I eth0 -q $HOST | grep "transmitted"

in eine Zeile zu bekommen. Mit "elegant" meine ich: so wenig externe
Kommandos, wie möglich. Die Befehle grep und date sind mir schon fast zu
viel, aber leider kennt ping keine entsprechenden Optionen.

Also so was wie

echo "`date;ping -c 1 -W 5 -I eth0 -q $HOST | grep "transmitted"`" | tr
-d ""

sind mir entschieden zu viele Kommandos. Außerdem würde tr beide
Zeilenumbrüche entfernen, was auch nicht erwünscht ist, denn der
abschließende Zeilenumbruch soll erhalten bleiben.

Da gibt's doch bestimmt was schöneres. Wenn's mit der Bash nicht geht,
kann notfalls auch auf eine andere Shell ausgewichen werden.


Wolfgang Klein
 

Lesen sie die antworten

#1 Juergen P. Meier
26/03/2014 - 09:11 | Warnen spam
Wolfgang Klein :
Ich suche eine elegante Möglichkeit, die Ausgabe des Befehls

date; ping -c 1 -W 5 -I eth0 -q $HOST | grep "transmitted"

in eine Zeile zu bekommen. Mit "elegant" meine ich: so wenig externe
Kommandos, wie möglich. Die Befehle grep und date sind mir schon fast zu
viel, aber leider kennt ping keine entsprechenden Optionen.

Also so was wie

echo "`date;ping -c 1 -W 5 -I eth0 -q $HOST | grep "transmitted"`" | tr
-d ""

sind mir entschieden zu viele Kommandos. Außerdem würde tr beide
Zeilenumbrüche entfernen, was auch nicht erwünscht ist, denn der
abschließende Zeilenumbruch soll erhalten bleiben.

Da gibt's doch bestimmt was schöneres. Wenn's mit der Bash nicht geht,
kann notfalls auch auf eine andere Shell ausgewichen werden.



was ist an
echo `date; ping -c 1 -W 5 -I eth0 -q $HOST | grep "transmitted"`
falsch?

Juergen
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)

Ähnliche fragen