나는 파이썬 파일을 가지고 있고 마치 대화형 모드에서 무언가를 입력한 것처럼 출력을 얻고 싶습니다(이 질문과 같습니다)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
명령에 표준 입력 버퍼가 있다는 것입니다.