Pytania otagowane jako pipe

Potok Unix łączy deskryptory plików dwóch procesów. Potok jest tworzony za pomocą funkcji potoku POSIX zadeklarowanej w <unistd.h>. Powłoki umożliwiają tworzenie potoków między procesami za pomocą „|”.

4
Jak rozumieć rury
Kiedy użyłem potoku w bashu, nie myślałem o tym więcej. Ale kiedy czytam przykład kodu C za pomocą wywołania systemowego pipe () razem z fork (), zastanawiam się, jak rozumieć potoki, w tym potoki anonimowe i potoki nazwane. Często słyszy się, że „wszystko w systemie Linux / Unix jest plikiem”. …

2
limit czasu, łamanie rur i wc
Miałem pomysł, aby szybko przeprowadzić testy porównawcze niektórych programów dekompresyjnych. Np. Dla gz uruchomiłbym polecenie: timeout 10 zcat foo.gz | wc -c Który mierzyłby ilość danych, które dekompresor mógłby wyodrębnić w ciągu 10 sekund. Jedynym problemem jest to, że nie działa: ponieważ Zcat jest zabijany, wc również jest zabijany, więc …
20 pipe  timeout 

3
Nieblokowana buforowana nazwana rura?
Szukam czegoś, co, jak podejrzewam, nie istnieje: nieblokowana buforowana nazwana potok (fifo) do użytku z wiersza poleceń. Czy jest coś takiego? Oto przypadek użycia: Załóżmy, że mam proces, który będzie działał przez długi czas w tle i wyrzuci wiele wyników stdout. Tak naprawdę nie dbam o wynik i nie chcę …



4
Jak mogę wdrożyć cykliczny przepływ danych między połączonymi poleceniami?
Znam dwa typy łączenia poleceń: za pomocą potoku (wstawianie wyjścia std do wejścia std następnego polecenia). za pomocą trójnika (podziel wyjście na wiele wyników). Nie wiem, czy to wszystko, co jest możliwe, więc rysuję hipotetyczny typ połączenia: Jak można wdrożyć cykliczny przepływ danych między poleceniami, na przykład w tym pseudokodzie, …

3
problem z tablicą odczytową (lub potokiem)
Utknąłem z dziwnym zachowaniem readarraydowodzenia. Te man bashstany: readarray Read lines from the standard input into the indexed array variable array ale te skrypty nie działają (tablica jest pusta): unset arr; (echo a; echo b; echo c) | readarray arr; echo ${#arr[@]} unset arr; cat /etc/passwd | readarray arr; echo …
19 bash  pipe 

3
Użycie ^ jako metaznaku powłoki
Napisałem dzisiaj mały skrypt, który zawierał grep -q ^local0 /etc/syslog.conf Podczas przeglądu współpracownik zasugerował, aby ^local0go zacytować, ponieważ ^oznacza „fajkę” w powłoce Bourne'a. Zaskoczony tym twierdzeniem, próbowałem wyśledzić wszelkie odniesienia, które o tym wspominały. Nic, co znalazłem w Internecie, nie sugerowało, że to był problem. Okazuje się jednak, że implementacja …

4
Dlaczego niektóre polecenia nie czytają ze standardowego wejścia?
Zastanawiam się, kiedy powinniśmy korzystać z rurociągów, a kiedy nie. Powiedzmy na przykład, aby zabić pewien proces, który obsługuje pliki pdf, następujące działania nie będą działać przy użyciu potoku: ps aux | grep pdf | awk '{print $2}'|kill Zamiast tego możemy to zrobić tylko na następujące sposoby: kill $(ps aux| …
19 shell  pipe  arguments  stdin 

3
echo kontra <<<, czy bezużyteczne użycie echa w Bash Award?
Do tej pory Nagroda za Bezużyteczne Wykorzystaniecat jest bardzo dobrze znana, jest też wzmianka o Bezużytecznym Wykorzystaniuecho (nie dotyczy tego pytania). Zastanawiam się, czy powinna istnieć „ echoNagroda za bezużyteczne wykorzystanie w Bash”: Według niektórych nienaukowych pomiarów orurowanie wydaje się być znacznie wolniejsze niż heredoki i tustringi: Heredocs: for reps …



2
Jak komponować funkcje bashowe za pomocą potoków?
Mam kilka zdefiniowanych w ten sposób funkcji: function f { read and process $1 ... echo $result } Chcę skomponować je razem, aby wyglądało na to wywołanie f | g | h. Jakiego idiomu używam do konwersji funkcji działającej na argumentach na jeden odczyt argumentów ze standardowego wejścia? Czy możliwe …

3
Jak pobrać pakiet RPM i zainstalować go w jednym wierszu?
Zastanawiałem się, czy wgetmożna było pobrać RPM, a następnie przepuścić przez sudo rpm -iinstalację, w jednej linii? Zdaję sobie sprawę, że mogę po prostu biegać: wget -c &lt;URL&gt; sudo rpm -i &lt;PACKAGE-NAME&gt;.rpm aby zainstalować pakiet, ale zastanawiałem się, czy można to zrobić w jednym wierszu, używając opcji quiet i zapisując …
18 pipe  rpm  wget 

4
Wyjście na standardowe wyjście i jednocześnie grep do pliku
Mam skrypt, który wyświetla tekst na adres stdout. Chcę zobaczyć wszystkie te dane wyjściowe w moim terminalu, a jednocześnie chcę przefiltrować niektóre wiersze i zapisać je w pliku. Przykład: $ myscript Line A Line B Line C $ myscript | grep -P 'A|C' &gt; out.file $ cat out.file Line A …
18 grep  pipe  stdout  tee 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.