2016-09-27 7 views
2

Ich habe ein Bash-Skript, das einige Verarbeitung/Logging Zeug tut, und schreibt dies in eine Datei. Es läuft kontinuierlich, bis der Benutzer es beendet. Was ich tun möchte, ist die automatische Beendigung - führe dieses Skript kontinuierlich aus, bis es die Datei bis zu einer bestimmten Größe oder Anzahl von Zeilen füllt, die vom Benutzer angegeben wurden. Ist das möglich?Wie Skript nach einer bestimmten Anzahl von Ausgaben zu beenden

Ich kann nicht denken, wie dies getan werden kann, weil ich Conditionals nicht verwenden kann, wenn dieses Skript kontinuierlich ist. Ich kann nur daran denken, Threads zu verwenden, aber ich bin ein Anfänger und möchte nicht, dass es so komplex ist.

+2

Verwenden Sie den Befehl head – 123

+1

Ihre Frage kurz und bündig ist anstelle einer Datei an das Terminal zu gehen. Wenn 'dieses' Skript kontinuierlich ist. Könnten Sie das Skript, das schreibt, in die fragliche Datei schreiben? Fragen sollten [mcve] s sein. – sjsam

Antwort

2

Wie @ 123 sagte, Sie head können die Ausgabe in eine bestimmte Anzahl von Zeilen wie

continuous_command | head -n 20 > output_file 

würde zeigen die ersten 20 Zeilen zu begrenzen, dann, wenn continuous_command versucht, seine 21 zu drucken, es würde fehlschlagen, weil das andere Ende der Pipe beendet wurde, so continuous_command würde ein SIGPIPE Signal erhalten, das normalerweise ein Programm zu beenden verursacht.

Sie können die > output_file Teil entfernen, wenn Sie die Ausgabe

+0

Ich denke, das op ist erforderlich, um zu den Ergebnissen in die fragliche Datei umleiten. – sjsam

+1

@sjsam ok, aktualisiert für das –

1

Versuchen this-

lines=$(cat file | wc -l) 
if [ "$lines" -gt "some_value" ] ; then kill -9 "job_id" ; fi 
+0

OP sagt keine conditionals, _i kann conditionals nicht verwenden, wenn dieses Script continuous_ – Inian

+0

ist, wie man eine bedingte äußerliche setzt? Und wenn 'Datei' größer als eine bestimmte Größe wird, wird ein' kill -9' für den Job ausgeführt? – VM17

+1

Bitte klären Sie mit dem Autor, bevor Sie die Antworten veröffentlichen, damit Sie nicht abgelehnt werden. – Inian

Verwandte Themen