echo Ausgabe in der Bash

brenner

Commander
Registriert
Apr. 2002
Beiträge
3.037
System: aktuelles Debian


Wenn ich bei einem System folgenden Befehl absetze
Code:
echo HMGET test01 | nc localhost 6770 -q 1
erhalte ich folgende Ausgabe:

Soweit so gut. Ich möchte aber das die Ausgabe mit Hilfe eines Einzeilers so aussieht:
TEMPERATURE:10.000000

Das ist bestimmt simpel, aber ich stehe da gerade auf dem Schlauch :(
 
Code:
echo textblabla `befehl`
falls es das ist was du suchst
 
Was mache ich falsch?

Code:
root@cacti01:~# echo TEMPERATURE: `HMGET test01 | nc localhost 6770 -q 1`
-bash: HMGET: Kommando nicht gefunden.
TEMPERATURE:
root@cacti01:~#



edit/zugefügt:
root@cacti01:~# echo HMGET test01 | nc localhost 6770 -q 1
10.000000
.
root@cacti01:~#


edit2:
root@cacti01:~# echo "TEMPERATURE: `HMGET test01 | nc localhost 6770 -q 1`"
-bash: HMGET: Kommando nicht gefunden.
TEMPERATURE:
root@cacti01:~#
 
Zuletzt bearbeitet:
ich glaube, die Jungs haben Dir Beispiele für ne Dos-Eingabe geschrieben ;)
Soltest erwähnen, dass Du Linux benutzt.
 
Hmmm, ich glaub mein Debian würde streiken wenn ich zu ihm DOS sage :D

edit:
Gleich der erste Satz steht was ich habe ;-)
 
Dann weiß ich jetzt aber auch nicht mehr weiter :-(
 
Vito108 schrieb:
Hast du die Gänsefüsschen benutzt?

Code:
root@cacti01:~# echo "TEMPERATURE: `HMGET test01 | nc localhost 6770 -q 1`"
-bash: HMGET: Kommando nicht gefunden.
TEMPERATURE:
root@cacti01:~#
 
Sorry, dass ich nicht helfen konnte. Was passiert, wenn Du
Code:
root@cacti01:~# echo `HMGET test01 | nc localhost 6770 -q 1`
benutzt? Wird der Befehl dann erkannt?
 
Das wird auch nicht funktionieren.... den eigentlich wird mit dem Befehl doch der String "HMGET test01" an nc... gesendet HMGET ist kein eigenständiger Befehl, aber mit den `` wird versucht dieses als solchen zu interpretieren.

Schreibt man sowas wie...
Code:
echo "Test" HMGET test01 | `nc localhost 6770 -q 1`

dann wird das "Test" nicht angezeigt, weil es natürlich mitgeschickt wird...
 
brenner schrieb:
Was mache ich falsch?

Code:
root@cacti01:~# echo TEMPERATURE: `HMGET test01 | nc localhost 6770 -q 1`
-bash: HMGET: Kommando nicht gefunden.
TEMPERATURE:
root@cacti01:~#



edit/zugefügt:



edit2:


Hi,


Du musst dein "HMGET test01" ja in die Pipe echoen.

Also
Code:
echo "TEMPERATURE: `echo 'HMGET test01' | nc localhost 6770 -q 1`"

Da laeufts mir ja kalt den Ruecken runter wenn da als root-User blind Befehle abgesetzt werden ;)

Gruesse
 
Zuletzt bearbeitet:
Supi,

Code:
root@cacti01:/# echo "TEMPERATURE:`echo 'HMGET test01' | nc localhost 6770 -q 1`"
TEMPERATURE:10.000000
.
root@cacti01:/#

hat funktioniert. :)

Und wo die Experten gerade hier sind, wie bekomme ich den Punkt, bzw. die zweite Zeile in der Ausgabe weg, ich will nur die erste Zeile!
 
Brauchst die echos nicht wild in Unterprozessen zu verschachteln sondern kannst die Ausgabe der Teile nacheinander machen. "-n" läßt den Zeilenumbruch am Ende einer Echo-Ausgabe weg.

echo -n Temperature: ; echo 'HMGET test01' | nc localhost 6770 -q 1 | head -1
 
Die Lösung vom Menschen habe ich natürlich auch noch getestet, aber damit kommt Cacti nicht zurecht und liest dann keine Werte mehr. Die erste Endlösung funktioniert weiterhin wunderbar :-)
 
Zurück
Oben