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 "|".
Als ich gerade Pipe in Bash verwendet habe, habe ich nicht mehr darüber nachgedacht. Wenn ich jedoch ein C-Codebeispiel mit system call pipe () zusammen mit fork () lese, frage ich mich, wie ich Pipes verstehen kann, einschließlich anonymer Pipes und Named Pipes. Es ist oft zu hören, dass "alles …
Ich hatte die Idee, einige Dekomprimierungsprogramme schnell zu vergleichen. ZB für gz würde ich den Befehl ausführen: timeout 10 zcat foo.gz | wc -c Dies würde die Datenmenge messen, die der Dekomprimierer in 10 Sekunden extrahieren könnte. Das einzige Problem ist, dass es nicht funktioniert: Wenn zcat getötet wird, wird …
Ich suche nach etwas, von dem ich vermute, dass es es nicht gibt: Eine nicht blockierende gepufferte Named Pipe (FIFO) zur Verwendung über die Befehlszeile. Gibt es so etwas? Hier ist der Anwendungsfall: Angenommen, ich habe einen Prozess, der eine lange Zeit im Hintergrund abläuft und eine Menge Ausgabe anstößt …
Angesichts dieses minimalen Beispiels ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; ) es gibt LINE 1und dann, nach einer Sekunde, Ausgänge LINE 2, wie erwartet . Wenn wir das weiterleiten grep LINE ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; ) …
Ich habe ein Bash-Skript, das ausgeführt wird, solange der Linux-Computer eingeschaltet ist. Ich starte es wie unten gezeigt: ( /mnt/apps/start.sh 2>&1 | tee /tmp/nginx/debug_log.log ) & Nach dem Start kann ich den Befehl tee in meiner ps- Ausgabe wie folgt sehen: $ ps | grep tee 418 root 0:02 tee …
Ich kenne zwei Arten, wie Befehle miteinander verbunden werden können: mit einer Pipe (std-output in std-input des nächsten Befehls setzen). durch Verwenden eines T-Stücks (Spleißen Sie den Ausgang in viele Ausgänge). Ich weiß nicht, ob das alles ist, was möglich ist, also zeichne ich einen hypothetischen Verbindungstyp: Wie könnte es …
Ich blieb bei einem merkwürdigen readarrayKommandoverhalten. Die man bashStaaten: readarray Read lines from the standard input into the indexed array variable array Aber diese Skripte funktionieren nicht (Array ist leer): unset arr; (echo a; echo b; echo c) | readarray arr; echo ${#arr[@]} unset arr; cat /etc/passwd | readarray arr; …
Ich habe heute ein kleines Drehbuch geschrieben, das Folgendes enthielt grep -q ^local0 /etc/syslog.conf Bei der Überprüfung schlug ein Mitarbeiter , dass ^local0da zitiert werden ^Mittel „Rohr“ in der Bourne - Shell. Überrascht von dieser Behauptung habe ich versucht, einen Hinweis darauf zu finden. Nichts, was ich im Internet gefunden …
Ich frage mich, wann wir Pipeline verwenden sollten und wann nicht. Sagen wir zum Beispiel, um einen bestimmten Prozess abzubrechen, der mit PDF-Dateien umgeht, funktioniert Folgendes nicht mit Pipeline: ps aux | grep pdf | awk '{print $2}'|kill Stattdessen können wir es nur auf folgende Arten tun: kill $(ps aux| …
Ich habe ein Tar-Archiv eines einzelnen Disk-Image. Das Bild in dieser Teer-Datei ist ungefähr 4 GB groß. Ich leite die Ausgabe von tar xfin ddum das Disk-Image auf eine SD-Karte zu schreiben. Der Speicherauszug stoppt nie, bis die Karte voll ist. Hier ist meine Shell-Sitzung: $ ls -l disk.img.tgz -rw-r--r-- …
In der Bash: $ echo hi 2>&1 1>/dev/null | cat $ Während in zsh: $ echo hi 2>&1 1>/dev/null | cat hi $ Gibt es eine Möglichkeit, nur Standardfehler umzuleiten, während Standard heraus umgeleitet wird?
Auf diese Weise habe ich einige Funktionen definiert: function f { read and process $1 ... echo $result } Ich möchte sie zusammenstellen, damit der Aufruf so aussieht f | g | h. Welches Idiom soll ich verwenden, um eine Funktion, die mit Argumenten arbeitet, in eine Funktion zu konvertieren, …
Inzwischen ist die unbrauchbare Verwendung von catAwards sehr bekannt, und es wird auch eine unbrauchbare Verwendung vonecho (für diese Frage nicht relevant) erwähnt. Ich frage mich, ob es einen "Useless Use of echoin Bash Award" geben sollte: Piping scheint nach einigen hochgradig unwissenschaftlichen Messungen viel langsamer zu sein als Heredocs …
Ich habe mich gefragt, ob wgetes möglich ist, ein RPM herunterzuladen und es dann sudo rpm -iin einer einzigen Zeile zu installieren. Mir ist klar, dass ich einfach rennen könnte: wget -c <URL> sudo rpm -i <PACKAGE-NAME>.rpm Um das Paket zu installieren, habe ich mich gefragt, ob es möglich sein …
Ich habe ein Skript, das Text ausgibt stdout. Ich möchte all diese Ausgaben in meinem Terminal sehen und gleichzeitig einige Zeilen filtern und in einer Datei speichern. Beispiel: $ myscript Line A Line B Line C $ myscript | grep -P 'A|C' > out.file $ cat out.file Line A Line …
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.