Heredoc로 전달된 Python 스크립트에서 파이프 콘텐츠 사용

Heredoc로 전달된 Python 스크립트에서 파이프 콘텐츠 사용

나는 여기 문서를 알고 있습니다. 표준 입력으로 이동하십시오. here-doc가 표준 입력으로 가는 파이프에서 나오는 것보다 우선한다는 것을 알 수 있습니다(아래 참조).

하지만 작동하게 만드는 비결이 있을까요?

대체로 스크립트 파일 생성을 피하고 싶습니다. 나는 -cPython에 스위치가 있다는 것을 알고 있지만 모든 것을 한 줄에 넣고 싶지 않습니다.

echo values | python3 <<SCRIPT
with open('/dev/stdin') as f:
    print(f.read()) # -> "values"
SCRIPT

현재 출력은 스크립트 자체입니다.

with open('/dev/stdin') as f:
    print(f.read()) # -> "values"

답변1

두 개의 표준 입력을 가질 수 없습니다. Python은 코드가 끝나는 위치와 내용이 시작되는 위치를 어떻게 알 수 있습니까?

이것은 다음을 사용하는 해결 방법입니다.프로세스 교체:

echo values | python3 <(cat <<SCRIPT
with open('/dev/stdin') as f:
    print(f.read()) # -> "values"
SCRIPT
)

관련 정보