• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Shell-Befehl in Variable - Problem

Hallo,


z.B. kann man mit:

out=`ls`

den Befehl ls in die Variable out speichern und anschließend mit

echo $out wieder auslesen


aber wie ist es z.B. mit netcat -> wenn der erst nach 5 minuten oder 30 minuten eine ausgabe macht? Da bringt er bloß ne leere Zeile...

Danke


Gruß,



Stefan
 

sc_m

Member
In der Variable wird alles gespeichert, was der Befehl ausgibt, bis er beendet wird. Wenn das 30 Minuten dauert, dann dauert es eben 30 Minuten. In einem Skript wird es dann aber auch so lange dauern, bis der nächste Befehl nach "out=`irgendein Befehl`" ausgeführt wird.
Code:
a=$(echo "lala"; sleep 10; echo "fertig."); echo $a
 
OP
S

stefan-koch

Newbie
Danke. Mein Ziel ist es, dass kdialog erscheint, sobald der Befehl etwas ausgibt.

Also:

netcat IP PORT

sobald jemand anruft gibts ne ausgabe, welche dann an kdialog gesendet werden soll z.B. so kdialog --msgbox $variable .

Jedoch sollten die Zeilen, die er vorher ausgegeben hat nicht mehr erscheinen

netcat:

stefan@pc05:~> netcat 192.168.0.100 1012
23.07.06 15:51:15;RING;0;0176XXXXXXXX;;SIP5; <- diese Zeile soll in kdialog erscheinen
23.07.06 15:51:17;DISCONNECT;0;0; <- diese in einem extra kdialog
 

sc_m

Member
Grundsätzlich kannst du wohl so etwas verwenden:
Code:
#!/bin/bash

exec 3< <( while true; do echo "Hallohallo! Wichtige Meldung!"; sleep 10; done)

while read <&3
do
  kdialog --msgbox "$REPLY" &
done
 
Oben