2017-04-15 6 views
3

파이썬 코드에서 이상한 동작이 발생했습니다. 파이썬 내 file.py 파일SSH 콘솔에서 print()를 실행 한 후 input()을 사용할 때

print("-------------------------- RANDOM STRING HERE! --------------------------------") 
email = input() 
print("-------------------------- RANDOM STRING HERE! --------------------------------") 
name = input() 
print("-------------------------- RANDOM STRING HERE! --------------------------------") 
address = input() 
print("-------------------------- RANDOM STRING HERE! --------------------------------") 
print(email+name+address) 

이을의 file.py

콘텐츠 : 그것은

cmd.exe를 @

, 내 Windows 콘솔 예를 들어

에서 잘 실행 내가 할 때 같은 코드가 작동하지 않습니다.

curl ://filepath/file.py | sudo python3 
콘솔의 SSH에서

. 나는 이미 PuTTY와 힘내 배쉬로 시도했지만, 나는 여전히 같은 오류가 발생하고있다. SSH 콘솔에서

는 EOFError가 :

EOFError in SSH Console

이미 sys.stdin를 사용하려고했으나 예상대로 작동하지 않습니다.

+0

당신은 표준 입력을 통해 스크립트를로드를 . 파이썬은 이미 그것을 모두 읽었으며 더 이상 사용할 수있는 것이 없습니다. – ephemient

+0

@ephemient는 어딘지에서 어떻게 검색되고 이해됩니까? 나는 여전히 콘솔 아래에서 사용자의 입력을 얻을 수 없습니다. 시도한 sys.stdin.read() => nope 및 sys.stdin.buffer.raw.read (100)), cmd에서 작동하지만 ssh ...를 통해 안된다. (무제한 필드이고 입력 할 때 제출하지 않는다.) 어떤 방법으로도 작동 할 것으로 기대 되는가? – Yidir

답변

2

아니요, 정말로, 당신은 그렇게 할 수 없습니다.

... | sudo python3 

를 실행하면 그래서 당신은 더 이상 해당 스크립트에서 stdin를 사용할 수 없습니다 stdin에 스크립트를 저장합니다.

하지만 임시 파일을 사용하여 그것을 파이프 않고 다른 방법으로 원형을 수행 할 수 있습니다

curl ://filepath/file.py -o /tmp/script 
sudo python3 /tmp/script 

또는 (배쉬) 공정 대체 사용 :

python3 <(curl ://filepath/file.py) 
+1

의미가 있습니다. 프로세스 대체를 사용하여 부분적으로 작업했습니다 (sudo와 함께 작동하지 않습니다). ** python3 : '/ dev/fd/63'파일을 열 수 없습니다 : [Errno 2] No such file or directory ** (6) 호스트를 해결할 수 없습니다 : (6) 호스트를 해결할 수 없습니다 : python3 curl : (3) 기형 ** - 구문 오류? Upvoted와 나는 약간의 명성 (감사합니다 @Jakuje)이 없다! – Yidir

+1

예. 분명히'sudo'는 모든 추가 파일 기술자를 닫습니다 (좋은 보안 방법이지만이 유스 케이스는 깨지게됩니다). sudo가 없으면 작동 할 수 있습니다. – Jakuje