나는 커스텀 입력 방식을 가지고 있으며, 파이썬 모듈과 통신 할 수있다. 로컬 stdout의 모든 내용이 원격 장치에 인쇄되고 원격 장치에서 보낸 모든 내용이 로컬 stdin으로 이동하므로 원격 장치가 프로그램에 지정된 입력을 제어 할 수 있도록 쉘을 제어하려고합니다. 원격 장치가 프로그램에 응답 할 수있는 기능 (예 : ssh)이 input
입니다. 내가 어떻게해야셸 stdin을 파이썬에서 제어하기
#! /usr/bin/python
from subprocess import Popen, PIPE
import thread
from mymodule import remote_read, remote_write
def talk2proc(dap):
while True:
try:
remote_write(dap.stdout.read())
incmd = remote_read()
dap.stdin.write(incmd)
except Exception as e:
print (e)
break
while True:
cmd = remote_read()
if cmd != 'quit':
p = Popen(['bash', '-c', '"%s"'%cmd], stdout=PIPE, stdin=PIPE, stderr=PIPE)
thread.start_new_thread(talk2proc, (p,))
p.wait()
else:
break
그러나이 작동하지 않습니다 나는 표준 입력과 표준 출력을 제어하는 파이썬 하위 프로세스를 사용?
p.s. 윈도우에 차이점이 있습니까?