LINUX.ORG.RU

Я попробовал, 123 не выводится, для data-parser stdin'ом является /dev/null.

Black_Shadow ★★★★★
()

замени /dev/null на текстовые файлы и попробуй

Black_Shadow ★★★★★
()

Никаких «приаттачиваний» не существует - дочерний процесс запускается с дескриптором который остался от родителя и это уже никак не может быть изменено родителем. В bash и FreeBSD'шном /bin/sh, например, читает только pipe. В то же время в теории можно породить вспомогательный процесс который читает несколько входов последовательно, склеивая их. Похоже так умеет zsh - там в процесс попадает и pipe и содержимое файла. Проверять это лучше так:

echo 2 >file
echo 1 | cat -n <file
slovazap ★★★★★
()
Ответ на: комментарий от slovazap

В то же время в теории можно породить вспомогательный процесс который читает несколько входов последовательно, склеивая их.

Почему «в теории»? Это стандартная практика.

vadim@aquila:~$ (cat /etc/os-release && cat ) | sed 's/^/=>/'
=>NAME="Arch Linux"
=>PRETTY_NAME="Arch Linux"
=>ID=arch
=>ID_LIKE=archlinux
=>ANSI_COLOR="0;36"
=>HOME_URL="https://www.archlinux.org/"
=>SUPPORT_URL="https://bbs.archlinux.org/"
=>BUG_REPORT_URL="https://bugs.archlinux.org/"
=>
Hello World!
=>Hello World!
vadim@aquila:~$ 
Deleted
()
Ответ на: комментарий от Deleted

Почему «в теории»? Это стандартная практика.

Тут ты его сам породил, а мы говорим о конструкции program1 | program2 < somefile.

proud_anon ★★★★★
()
Ответ на: комментарий от Deleted

Я не о «руками», а о том чтобы шелл умничал и делал это автоматом.

slovazap ★★★★★
()

Я тебе дам универсальный совет для случаев «А что на самом деле происходит?». Делаешь

strace -f -s 1024 -o penis.log sh -c "echo 123 | data-parser >/dev/null </dev/null &"

А потом читаешь penis.log

DELIRIUM ☆☆☆☆☆
()

Неправильно прочитал вопрос сначала.

Для data-parser не будет. < в конвейере работает для первой программы. То есть, для echo, который stdin не читает. data-parser'у привязывается stdout от echo.

evilface ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.