Якщо program2
він не використовує сам stdin і -in
є єдиним способом вказати вхідний файл, це корисні варіанти:
/proc/self/fd/0
або /proc/fd/0
(за наявності; функція ядра, не потрібна POSIX)
program1 | program2 -in /proc/self/fd/0 -out filename
Заміна процесу (підтримується в Bash та кількох інших оболонках, не вимагається POSIX)
program2 -in <(program1) -out filename
Фамільна назва (спосіб POSIX)
mkfifo foo
program1 >foo & # in background
program2 -in foo -out filename
rm fifo
Зауважте, що багато програм, які зазвичай не використовують свій stdin, ведуть себе таким чином не просто так: їм потрібно вводити вхідний файл. З <bar program2
Ви можете зробити дескриптор файлу 0 з program2
точки в bar
файл , який є доступним для пошуку, але в цілому не є стандартним вводом доступним для пошуку, так що такі програми не турбувати його використання. Кожен з перерахованих вище методів може призвести до відмови вашої програми, якщо він очікує, що файл буде шукати.