Als «pipe» getaggte Fragen

Eine Unix-Pipe verbindet Dateideskriptoren zweier Prozesse. Eine Pipe wird mit der in <unistd.h> deklarierten POSIX pipe () -Funktion erstellt. Shells ermöglichen die Erstellung von Rohren zwischen Prozessen mit "|".

13
Schalten Sie die Pufferung in der Leitung aus
Ich habe ein Skript, das zwei Befehle aufruft: long_running_command | print_progress Der long_running_commandAusdruck ist ein Fortschritt, aber ich bin unzufrieden damit. Ich verwende print_progress, um es schöner zu machen (nämlich, ich drucke den Fortschritt in einer einzigen Zeile). Das Problem: Das Verbinden einer Pipe mit stdout aktiviert auch einen 4K-Puffer, …
396 shell  pipe  buffer 



1
Bash: Was macht "> |"?
Ich habe gerade gesehen, wie das aufgeschrieben wurde. $ some-command &gt;| /tmp/output.txt Vertikale Pipes werden in Standard-Redirects verwendet, um die Ausgabe eines Befehls an einen anderen zu "leiten". Ist dies &gt;|in der Tat völlig nutzlos, wie es auch &gt;in diesem Szenario der Fall wäre ?

6
Wie groß ist der Pipe Buffer?
Als Kommentar in Ich bin verwirrt, warum "| true" in einem Makefile den gleichen Effekt wie "|| true" hat. Benutzer cjm schrieb: Ein weiterer Grund, | zu vermeiden true ist, dass wenn der Befehl genügend Ausgabe erzeugt, um den Pipe-Puffer zu füllen, das Warten auf true zum Lesen blockiert wird. …
146 pipe  buffer 




3
Pseudodateien für temporäre Daten
Ich möchte häufig relativ kurze Zeichenfolgendaten (kann aber auch mehrere Zeilen umfassen) an Befehlszeilenprogramme übergeben, die wiederholt nur Eingaben aus Dateien (z. B. wdiff) akzeptieren. Sicher kann ich eine oder mehrere temporäre Dateien erstellen, die Zeichenfolge dort speichern und den Befehl mit dem Dateinamen als Parameter ausführen. Es sieht für …
98 bash  files  pipe 

4
In welcher Reihenfolge werden Pipe-Befehle ausgeführt?
Ich habe nie wirklich darüber nachgedacht, wie die Shell tatsächlich Pipe-Befehle ausführt. Ich habe immer gesagt, dass die „stdout eines Programms wird verrohrt in den stdin eines anderen,“ als eine Möglichkeit , über Rohre zu denken. Also dachte ich natürlich, dass im Falle von sagen wir, A | B, A …
89 pipe  ps 

5
Prozessersetzung und Rohrleitung
Ich habe mich gefragt, wie ich das Folgende verstehen soll: Die Standardausgabe eines Befehls in die Standardausgabe eines anderen Befehls zu leiten, ist eine leistungsstarke Technik. Aber was ist, wenn Sie die Standardausgabe mehrerer Befehle weiterleiten müssen? Hier kommt die Prozesssubstitution ins Spiel. Mit anderen Worten, kann die Prozessersetzung das …

4
Kann nicht in diff Pipe?
Ich wollte schlau sein und eine entfernte Datei mit einer lokalen Datei vergleichen, ohne sie vorher manuell herunterzuladen. Ich kann den Inhalt der Remote-Datei von erhalten ssh user@remote-host "cat path/file.name" Leiten Sie das jedoch an diff ssh user@remote-host "cat path/file.name" | diff path/file.name gibt mir das: diff: missing operand after …

6
Kann ich stdout auf einem Server an stdin auf einem anderen Server weiterleiten?
stdoutauf einem CentOS-Server muss stdinauf einen anderen CentOS-Server umgeleitet werden. Ist das möglich? Aktualisieren ScottPack, MikeyB und Jofel haben alle gültige Antworten. Ich habe Scott die Antwort gegeben, weil es immer schön ist, in Sicherheit zu sein, auch wenn meine Frage keine Sicherheitsanforderung enthält. Die Vorschläge der beiden anderen Fellows …
74 pipe  stdout  stdin 

7
Programm, das STDIN mit entfernten Farbcodes an STDOUT übergibt?
Ich habe einen Befehl, der eine Ausgabe in Farbe erzeugt, und ich möchte ihn in eine Datei umleiten, deren Farbcodes entfernt wurden. Gibt es einen Befehl, der funktioniert, cataußer dass er Farbcodes entfernt? Ich habe vor, so etwas zu machen: $ command-that-produces-colored-output | stripcolorcodes &gt; outfile
64 colors  pipe  filter 

8
Wie erstelle ich eine bidirektionale Pipe zwischen zwei Programmen?
Jeder weiß , wie unidirektionale Leitung zwischen zwei Programmen zu machen (bind stdoutder ersten und stdinder zweiten): first | second. Aber wie macht man bidirektionale Pipe, also Cross-Bind stdinund stdoutvon zwei Programmen? Gibt es eine einfache Möglichkeit, dies in einer Shell zu tun?
63 shell  pipe 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.