1
sCMD = 'ssh [email protected] cat some/path | grep "Oct 31\|Oct 30"'
child = pexpect.spawn(sCMD)
try:
child.expect("assword")
except pexpect.EOF:
raise Exception("Cannot connect to host")
child.sendline(ssh_pass)
lData = [s.strip(' \n\r:') for s in child.readlines()]
(IDATA)가 작동 떠들썩한 파티 명령에 대해 "아니오 같은 파일 또는 디렉터리"나는 읽을 수있는 첫 번째 줄을 변경할 경우 :pexpect [0] "그런 파일 또는 디렉터리"</p> <p>을 읽지 않습니다
sCMD = 'ssh [email protected] cat some/path'
그러면 lData는 파일의 모든 행을 포함합니다.
하지만 터미널에서 grep과 똑같은 명령을 실행하면 올바르게 작동합니다. 예상 한 텍스트를 반환합니다. 불만 없음.
pexpect를 통해 실행될 때 명령이 다른 방식으로 수행되는 이유는 무엇입니까?
'print sCMD'를 실행하면 차이가 발생합니다. 첫 번째 경우에는 ssh의 출력을 grep로 파이핑하고, 다른 하나는'cat | grep' ssh를 통한 파이프 라인. pexcept와 아무 관련도 없음 – iruvar
'grep '도 원격 호스트에서 실행되기 때문에. 로컬에서 파이프 라인을 실행하려고했으나이 컨텍스트에서는 작동하지 않습니다. – tripleee
''cat' :] (http://partmaps.org/era/unix/award.html)의''쓸모없는 사용법''sCMD = 'ssh user @ host grep'을 수정해야합니다. Oct 31 \ | Oct 30 "some/path "또는 – tripleee