wie man mehrfache umleitung mit befehl und fifo macht

418
Ciccio

Ich muss ein Bash-Skript in einer Linux-Maschine mit der folgenden Umleitung schreiben.

echo commands > cmd_receives_commands > fifo > awk_parser > tcp_socket 

Ich habe bestätigt, dass das Konstrukt für "tcp_socket" funktioniert:

echo 3<> /dev/tcp/address/port cmd >&3 echo 3<&- 

Für den Rest des Skripts habe ich Folgendes versucht:

mkfifo fifo  ./parser.awk <&4 > out exec 4>fifo exec 3> >(cmd1 >&4)  echo to_cmd1 >&3 echo end $(date +%s) >&4 exec 3<&- exec 4<&- 

Sie funktionieren aber nicht, weil die Datei nicht geschrieben wird.

0
Gibt es einen Grund, warum Sie "Pipe" nicht verwenden können, wie es die meisten Leute tun? Beispiel: "echo" Dies ist ein Test \ n Dies ist nur ein Test. " | nur grep | awk '' `würde" test "ausgeben. jeremysprofile vor 5 Jahren 1
Mehrere Umleitungen im Befehl. Aus diesem Grund hat Linux | [Pipes] | C0deDaedalus vor 5 Jahren 0
Es gibt wirklich einen Grund. In meinem Beispiel ist der Schritt "cmd_receives_commands" ein proprietärer Befehl, der bei manueller Ausführung eine Eingabeaufforderung zurückgibt. Ich muss auch eine Schleife erstellen, um denselben Befehl (zum Überwachen) viel Zeit zu wiederholen, und schließlich die Ausgabe vor dem Parser abfangen (dachte ich mit einem Schwanz im Fifo). Ciccio vor 5 Jahren 0
Ich habe endlich meine (große) Schuld verstanden. Es geht um FiFo. Einmal gelesen, sind die Daten weg. Ciccio vor 5 Jahren 0

0 Antworten auf die Frage