프로그램이 존재한다고 가정 해 봅시다. 두 개의 인수가 필요합니다. 입력 파일 및 출력 파일.
이 출력 파일을 디스크에 저장하지 않고 stdin
다른 프로그램으로 바로 전달하려면 어떻게해야합니까 ? 이것을 달성 할 수있는 방법이 있습니까?
리눅스에서 나는 많은 명령을 출력 파일 인수로 '-'를 전달하는 옵션을 제공합니다. 이는 위에서 지정한 것을 수행합니다. 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
stdin에서 아무것도 읽지 않습니다.
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
대부분의 유니스에서 작동합니다.