GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Stdout eines Befehls für T Sekunden verwerfen?

Ich arbeite an einigen Batch-Skripten, die Folgendes beinhalten:

  • Führen Sie einige nicht terminierende Unterprozesse (asynchron) aus
  • Warten Sie auf t Sekunden
  • Führe andere Aufgabe X aus seit einiger Zeit
  • Teilprozesse beenden

Idealerweise möchte ich den stdout der vorher ausgegebenen Teilprozesse unterscheiden können X von dem, was nach emittiert wurde X .

Ein paar Ideen kommen mir in den Sinn, obwohl ich keine Ahnung habe, wie ich sie umsetzen würde:

  • Stdout für t verwerfen Sekunden
  • Fügen Sie etwas Text ein (z. B. „Aufgabe X gestartet“), um die Abschnitte optisch zu trennen
  • Teilen Sie stdout in verschiedene Ausgabeströme auf

Akzeptierte Antwort:

Während Sie die Sache mit exec verkomplizieren könnten und zusätzliches Dateideskriptor-Wrangling, Ihr zweiter Vorschlag ist der einfachste. Vor dem Start von X , echo eine Markierungszeichenfolge in die Protokolldatei.

Alle diese Befehle würden an dieselbe Datei angehängt, daher wäre es vielleicht eine gute Idee, der gesamten Ausgabe von X voranzustellen mit einem Marker, damit Sie seine Ausgabe von der eines der noch laufenden vorherigen Befehle unterscheiden können. Etwas in der Art von:

{ X; } | sed 's,^,[X say] ,'

Dies würde die weitere Analyse erheblich vereinfachen. Es ist nicht sicher und bei sehr ausführlichen Programmen treten häufig Race Conditions auf.

Wenn Sie bereit sind, die Chance zu nutzen, eine Protokollzeile zu unterbrechen, und den ersten Stapel von Apps ohne Konsequenzen unterbrechen können, würde dies auch funktionieren:

{ Y; } >> log &
sleep $t
kill -STOP %% # last job, like the same as %1
echo -e "nX started" >> log
kill -CONT %%
{ X; } >> log2

Linux
  1. 8 Tipps für die Linux-Kommandozeile

  2. DNF-Befehlsbeispiele für Anfänger

  3. Wie zerlegt man eine Datei wie Split in Stdout, um sie an einen Befehl weiterzuleiten?

  4. stdout als Dateinamen für das Befehlszeilenprogramm übergeben?

  5. Kann der Linux-Cat-Befehl zum Schreiben von Text in eine Datei verwendet werden?

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)

Linux-Suchbefehl für Anfänger (8 Beispiele)

Einige gute Alternativen zu du Command

Exa – Ein moderner Ersatz für ls Command