$ mkfifo mypipe
$ echo "hello redirection" > mypipe
$ cat < mypipe
hello redirection
Python을 사용하여 위의 작업을 수행하려고 할 때 문제가 있습니다.
# pyecho.py
with open("/dev/stdin", "r") as f:
print(f.read())
$ python3 pyecho.py < mypipe
파이프에 두 번 쓰지 않으면 종료되지 않습니다.
$ echo "hello redirection" > mypipe
$ echo "hello redirection" > mypipe
하지만 파이썬을 루프에 넣으면
# pyecho.py
while True:
with open("/dev/stdin", "r") as f:
print(f.read())
그런 다음 초기 반복(두 번의 쓰기 필요) 후에는 다시 예상대로 작동합니다.