Описание тега process-substitution
Process substitution is a form of inter-process communication that allows the input or output of a command to appear as a file. The command is substituted in-line, where a file name would normally occur, by the command shell. This allows programs that normally only accept files to directly read from or write to another program.
0
ответов
Процесс подстановки с pv приводит к пустому файлу
У меня проблемы с получением pv команда работать с tar используя замену процесса Bash. я могу использовать pv вот так и работает: $ tar cvf - dir | pv > file.tar dir/ dir/b dir/a 10KiB 0:00:00 [16.9MiB/s] [<=> ] $ ls -s file.tar 12 file.tar…
04 янв '17 в 00:47
1
ответ
Переменная потеря в перенаправленном Bash во время цикла
У меня есть следующий код for ip in $(ifconfig | awk -F ":" '/inet addr/{split($2,a," ");print a[1]}') do bytesin=0; bytesout=0; while read line do if [[ $(echo ${line} | awk '{print $1}') == ${ip} ]] then increment=$(echo ${line} | awk '{print $4}'…
20 окт '13 в 13:54
2
ответа
Эмуляция именованных процессов
Допустим, у меня есть большой GZIP-файл data.txt.gz, но часто разархивированную версию нужно давать программе. Конечно, вместо создания отдельного без упаковки data.txt можно использовать синтаксис замены процесса: ./program <(zcat data.txt.gz) О…
05 июн '14 в 12:43
4
ответа
Подстановка процесса - Node.js child_process
Я пытаюсь запустить дочерний процесс для изменения файла (в два этапа) перед чтением измененного содержимого из stdout. Я пытаюсь сделать это, используя процесс подстановки, который отлично работает в Bash, но не когда я пытаюсь это с узла. Это врод…
25 июл '13 в 14:07
1
ответ
Процесс подстановки работает в bash, но не в zsh
Я пытаюсь скормить цикл, используя процесс подстановки. logFile=$1 declare -A frequencyMap while read line do name=$(echo $line | awk '{print $11}') if [ ${frequencyMap[$name]+_} ] then frequencyMap[$name]=$(expr ${frequencyMap[$name]} + 1) else fre…
27 сен '15 в 03:06
1
ответ
Процесс замещения, /dev/fd/63
У меня есть сценарий, который принимает имя файла в качестве ввода в $1, и обрабатывает его... и создает выходной файл как ${1}.output.log, и он отлично работает. например, если я попробовал./myscript filename.txt Он обработает и сгенерирует выходно…
22 мар '18 в 16:49
1
ответ
Перенаправление Bash: именованные каналы и EOF
Возьмите следующий код: rm -f pipe mkfifo pipe foo () { echo 1 sleep 1 echo 2 } #1 exec 3< <(foo &) cat <&3 # works #2 foo >pipe & cat <pipe # works #3 exec 3<>pipe foo >&3 & cat <&3 # hangs #4 -- u…
15 окт '15 в 22:55
3
ответа
Использование процесса замены Bash с циклом tee и while
Я хочу использовать вложенные процессы с тройником в цикле while. while read line; do #process line echo "--$line" done < <(cat sample.file | tee >(grep "SPECLINE") | grep "LINESTOPROCESS") Поэтому мне нужно: все строки в sample.file, котор…
06 янв '19 в 16:45
1
ответ
Ловушка bash и замена процесса
ОБНОВИТЬ Я использовал гораздо лучший тестовый пример для ответа, который я написал. Я добавляю сюда обновленный тестовый случай, если кто-то захочет поэкспериментировать: #!/bin/bash mypts="$( tty )" # main traps trap "echo 'trapped SIGCHLD' >$…
30 окт '17 в 10:10
1
ответ
Как работает "var=>(...) somecommand"?
#1 f() { cat "$1" >"$x" } #2 x=>(tr '[:lower:]' '[:upper:]') f <(echo 'hi there') В #2 какая часть исполняется первой? x=>(tr '[:lower:]' '[:upper:]') или е <(echo 'hi there'), #2 является составным соединением или единственной коман…
18 сен '17 в 12:36
2
ответа
Как я могу использовать строки замены процесса в BASH?
Я знаю, что могу сделать что-то вроде cat <(cat somefile) Но я хочу создать строку <(), Так: for file in *.file; do mySubs="${mySubs} <(cat ${file})" done cat ${mySubs} #cat <(cat 1.file) <(cat 2.file) ... <(cat something.file) Без…
18 дек '18 в 20:11
1
ответ
Как добавить параметры командной строки в скрипт, скачанный с помощью curl
У меня есть следующее в моем скрипте CI.,, - bash <(curl -s https://codecov.io/bash -gtest) Какой правильный синтаксис для получения -g немного работает? Конечно - curl -s https://codecov.io/bash >> codecov - chmod +x codecov - ./codecov -g…
22 май '16 в 20:02
2
ответа
Патч на стандартный вывод с заменой процесса
Я пытаюсь сделать что-то вроде: patch <( zcat data.201301.gz ) patch_file.diff -o /dev/stdout результат, который я получаю: File /dev/fd/63 is not a regular file -- refusing to patch 4504 out of 4504 hunks ignored -- saving rejects to file /dev/s…
16 июл '14 в 11:28
1
ответ
Как распечатать результат команды, а также количество результатов?
Я должен напечатать все файлы, содержащие запрос, указанный в качестве аргумента консоли, следующая строка делает это find . "$path" -type f -name "*$key*" -print Однако я также хотел бы получить общее количество файлов, но делать это: find . "$path…
28 май '17 в 15:09
3
ответа
Как найти следующий доступный файловый дескриптор в Bash?
Как я могу узнать, используется ли дескриптор файла в Bash? Например, если у меня есть скрипт, который читает, пишет и закрывает fd 3, например exec 3< <(some command here) ... cat <&3 exec 3>&- Каков наилучший способ убедиться, …
12 янв '17 в 01:42
1
ответ
Не в состоянии читать строки из запущенного процесса в Bash
Используя подстановку процесса, мы можем получить все строки вывода команды. # Echoes every seconds using process substitution while read line; do echo $line done < <(for i in $(seq 1 10); do echo $i && sleep 1; done) Таким же образом,…
16 ноя '15 в 06:44
1
ответ
Как перенаправить в процесс подстановки?
Я попытался перенаправить стандартную ошибку в файл с ограниченными разрешениями. Вот что я сделал: exec 2> >(umask 077; exec > stderr.log) Идея заключалась в том, чтобы перенаправить стандартную ошибку в процесс, изменить маску и еще раз п…
24 авг '16 в 10:41
2
ответа
Некоторые программы не допускают подстановку процессов для входных файлов?
Я пытаюсь использовать процесс подстановки для входного файла в программу, и это не работает. Это потому, что некоторые программы не допускают подстановку процессов для входных файлов? Следующее не работает: bash -c "cat meaningless_name" >sequen…
25 ноя '10 в 06:02
1
ответ
Почему команда исходного кода не работает с подстановкой процессов в bash 3.2?
У меня есть следующий сценарий оболочки: cat <(echo foo) source <(echo bar=bar) echo $bar Однако в GNU bash 3.2 и 4.3 это работает по-разному, как показано ниже: $ /bin/bash foo.sh foo 3.2.53(1)-release $ /usr/local/bin/bash foo.sh foo bar 4.3…
15 сен '15 в 21:39
2
ответа
Here Strings: Что здесь происходит?
Я относительно новичок в написании сценариев оболочки, но не в программировании, хотя и признаюсь, что некоторое время отсутствовал в игре. Пытаясь понять причину ошибки в скрипте Bash, я привел три коротких примера моего использования подстановки п…
24 окт '13 в 20:03