Допустим, существует программа, которая принимает два аргумента; входной файл и выходной файл.
Что делать, если я не хочу сохранять этот выходной файл на диск, а просто передать его stdinдругой программе. Есть ли способ добиться этого?
Многие команды, с которыми я сталкиваюсь в Linux, предоставляют опцию для передачи «-» в качестве аргумента выходного файла, что делает то, что я указал выше. Это потому, что передача stdinпрограммы в качестве аргумента невозможна? Если это так, как мы это делаем?
Пример того, как я мог бы использовать это изображение:
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
Я использую оболочку bash.
cat < README.txt | cp /dev/fd/0. cp: missing destination file operand after ‘/dev/fd/0’ Try 'cp --help' for more information.
program input-file /dev/stdout | another-program? Также обратите внимание, что echoничего не читает из стандартного ввода.
cpфайл нигде. echo 1 2 3| cp /dev/fd/0 /dev/ttyнапечатает 1 2 3. И, кстати, с /dev/fd/[num]большей вероятностью сработает, чем /dev/std(in|out|err)в большинстве случаев. См. Портативность ссылок файлов-дескрипторов о том, что и где вы можете ожидать.
cat <file | cmd /dev/fd/0работает на большинстве офисов.