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 "|".
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, …
Ich habe zwei Prozesse foound bar, verbunden mit einer Pipe: $ foo | bar barverlässt immer 0; Ich interessiere mich für den Exit-Code von foo. Gibt es eine Möglichkeit, daran heranzukommen?
Ich möchte alle führenden und nachfolgenden Leerzeichen und Tabulatoren aus jeder Zeile in einer Ausgabe entfernen. Gibt es ein einfaches Tool, in das trimich meine Ausgabe umleiten kann? Beispieldatei: test space at back test space at front TAB at end TAB at front sequence of some space in the middle …
Ich habe gerade gesehen, wie das aufgeschrieben wurde. $ some-command >| /tmp/output.txt Vertikale Pipes werden in Standard-Redirects verwendet, um die Ausgabe eines Befehls an einen anderen zu "leiten". Ist dies >|in der Tat völlig nutzlos, wie es auch >in diesem Szenario der Fall wäre ?
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. …
Ich habe einen Befehl, der Daten an stdout ( command1 -p=aaa -v=bbb -i=4) ausgibt . Die Ausgabezeile kann den folgenden Wert haben: rate (10%) - name: value - 10Kbps Ich möchte diese Ausgabe aufgreifen, um diese 'Rate' zu speichern (ich denke, Pipe wird hier nützlich sein). Und schließlich möchte ich, …
Ich habe eine Binärdatei (die ich nicht ändern kann) und kann Folgendes: ./binary < file Ich kann auch: ./binary << EOF > "line 1 of file" > "line 2 of file" ... > "last line of file" > EOF Aber cat file | ./binary gibt mir einen fehler. Ich weiß …
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 …
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 …
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 …
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 …
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 …
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 > outfile
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?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.