Вопросы с тегом «pipe»

Канал Unix соединяет файловые дескрипторы двух процессов. Канал создается с помощью функции POSIX pipe (), объявленной в <unistd.h>. Оболочки обеспечивают создание канала между процессами, используя «|».

4
Как понимать трубы
Когда я просто использовал pipe в bash, я больше не думал об этом. Но когда я читаю некоторый пример кода на языке C, используя системный вызов pipe () вместе с fork (), я удивляюсь, как понимать каналы, включая как анонимные каналы, так и именованные каналы. Часто говорят, что «все в …

2
тайм-аут, разрыв труб и туалет
У меня была идея быстро сравнить некоторые программы декомпрессии. Например, для gz я бы запустил команду: timeout 10 zcat foo.gz | wc -c Который будет измерять количество данных, которые декомпрессор может извлечь за 10 секунд. Единственная проблема заключается в том, что он не работает: поскольку zcat уничтожен, wc также уничтожен, …
20 pipe  timeout 

3
Неблокирующая буферизованная именованная труба?
Я ищу то, что, как я подозреваю, не существует: неблокируемый буферизованный именованный канал (fifo) для использования из командной строки. Что-то подобное существует? Вот пример использования: Предположим, у меня есть процесс, который будет долго работать в фоновом режиме и израсходовать много выходных данных stdout. Меня не очень волнует вывод, и я …

3
grep не выводит до EOF, если пропущен через cat
Учитывая этот минимальный пример ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; ) он выводит, LINE 1а затем, через одну секунду, выводит LINE 2, как и ожидалось . Если мы передадим это grep LINE ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; …
19 bash  grep  pipe 

2
Как завершить команду Linux tee, не убивая приложение, от которого она получает
У меня есть скрипт bash, который работает, пока машина Linux включена. Я начинаю это, как показано ниже: ( /mnt/apps/start.sh 2&gt;&amp;1 | tee /tmp/nginx/debug_log.log ) &amp; После этого я вижу команду tee в выводе ps, как показано ниже: $ ps | grep tee 418 root 0:02 tee /tmp/nginx/debug_log.log 3557 root 0:00 …
19 linux  scripting  pipe  kill  tee 

4
Как я могу реализовать круговой поток данных между взаимосвязанными командами?
Я знаю два типа, как команды могут быть связаны друг с другом: используя Pipe (помещая std-output в std-input следующей команды). с помощью тройника (разделить выход на несколько выходов). Я не знаю, возможно ли это все, поэтому я рисую гипотетический тип соединения: Как можно реализовать круговой поток данных между командами, как, …

3
проблема с readarray (или pipe)
Я застрял со странным поведением readarrayкоманды. В man bashгласит: readarray Read lines from the standard input into the indexed array variable array но эти скрипты не работают (массив пуст): unset arr; (echo a; echo b; echo c) | readarray arr; echo ${#arr[@]} unset arr; cat /etc/passwd | readarray arr; echo …
19 bash  pipe 

3
Использование ^ в качестве метасимвола оболочки
Я написал небольшой сценарий сегодня, который содержал grep -q ^local0 /etc/syslog.conf Во время обзора коллега предложил, чтобы ^local0его цитировали, потому что ^означает «труба» в оболочке Борна. Удивленный этим утверждением, я попытался отследить любую ссылку, в которой упоминалось это. Ничто из того, что я нашел в интернете, не предполагало, что это …

4
Почему некоторые команды не читаются со стандартного ввода?
Интересно, что когда мы должны использовать конвейер, а когда нет. Скажем, например, чтобы убить определенный процесс, который обрабатывает PDF-файлы, следующее не будет работать с использованием конвейера: ps aux | grep pdf | awk '{print $2}'|kill Вместо этого мы можем сделать это только следующими способами: kill $(ps aux| grep pdf| awk …
19 shell  pipe  arguments  stdin 

3
echo vs <<< или Бесполезное использование echo в Bash Award?
К настоящему времени « Бесполезное использование catнаграды» очень хорошо известно, и есть также упоминание о « Бесполезном использовании»echo (не относится к этому вопросу). Я задаюсь вопросом, должно ли быть «Бесполезное использование echoв Bash Award»: трубопроводы, кажется, намного медленнее, чем heredocs и Herestrings, согласно некоторым весьма ненаучным измерениям: Heredocs: for reps …

1
Почему передача `tar` в` dd` не останавливается, пока диск не заполнится?
У меня есть tar-архив одного образа диска. Размер изображения в этом tar-файле составляет около 4 ГБ. Я передаю вывод tar xfв, ddчтобы записать образ диска на SD-карту. Диск-дамп никогда не останавливается, пока карта не заполнится. Вот мой сеанс оболочки: $ ls -l disk.img.tgz -rw-r--r-- 1 confus confus 192M Okt 5 …
18 pipe  tar  dd  disk-image 


2
Как составить bash-функции, используя каналы?
У меня есть несколько функций, определенных таким образом: function f { read and process $1 ... echo $result } Я хочу собрать их вместе, чтобы вызов выглядел так f | g | h. Какую идиому я должен использовать для преобразования функции, работающей с аргументами, в чтение аргументов из стандартного ввода? …

3
Как скачать пакет RPM и установить его в одну строку?
Мне было интересно, можно ли с помощью wgetэтого загрузить RPM, а затем передать его, sudo rpm -iчтобы установить в одну строку? Я понимаю, что могу просто бежать: wget -c &lt;URL&gt; sudo rpm -i &lt;PACKAGE-NAME&gt;.rpm чтобы установить пакет, но мне было интересно, возможно ли сделать это в одной строке, используя тишину …
18 pipe  rpm  wget 

4
Вывод в stdout и одновременно grep в файл
У меня есть скрипт, который выводит текст в stdout. Я хочу видеть весь этот вывод в моем терминале, и в то же время я хочу отфильтровать некоторые строки и сохранить их в файл. Пример: $ myscript Line A Line B Line C $ myscript | grep -P 'A|C' &gt; out.file …
18 grep  pipe  stdout  tee 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.