Python 스크립트의 출력은 대화형 모드의 입력과 동일합니다.

Python 스크립트의 출력은 대화형 모드의 입력과 동일합니다.

나는 파이썬 파일을 가지고 있고 마치 대화형 모드에서 무언가를 입력한 것처럼 출력을 얻고 싶습니다(이 질문과 같습니다)https://stackoverflow.com/q/59008423그러나 쉘 스크립트를 사용하여)

이 쉘 스크립트를 사용하려고합니다script.sh

# script.sh
#!/bin/sh
printf "print(\"one\")\nprint(\"two\")\n" | tee /dev/fd/3 | python -i 1>/dev/fd/3 2>/dev/fd/3

그리고 달리다

$ sh script.sh 3>&1

그리고 출력을 얻으십시오

print("one")
print("two")
Python 3.11.6 (main, Nov 14 2023, 09:36:21) [GCC 13.2.1 20230801] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> one
>>> two
>>> 

내가 기대했던 것 대신에

Python 3.11.6 (main, Nov 14 2023, 09:36:21) [GCC 13.2.1 20230801] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("one")
one
>>> print("two")
two
>>> 

문제는 python명령에 표준 입력 버퍼가 있다는 것입니다.

관련 정보