2013-03-07 3 views
0

다음 코드를 사용하여 spawn.send("ls | grep *.dat\n");에서 InputStream을 읽고 싶습니다. 내 전화는 Spawnable이며 그 방법은 getStdout()입니다. 단, 사용 방법에 대한 힌트는 없습니다. ExpectJ docs 님의 메시지 : getStdout() - Spawn의 stdout을 읽을 수있는 스트림을 가져옵니다. 그러나 이것은 나를 더 이상 얻지 못합니다.expectJ - spawn.send()에서 InputStream 읽기

private void expectC() throws IOException, TimeoutException, ExpectJException, InterruptedException { 
     ExpectJ expectJ = new ExpectJ(); 
     Spawn spawn = expectJ.spawn("192.168.1.60", 22, "login", "pass"); 
     spawn.send("ls | grep *.dat\n"); 
     spawn.expectClose(); 
} 

답변

0
ExpectJ ex = new ExpectJ(5); 
    Spawn spawn = ex.spawn(new SshSpawn("192.168.56.101", 22, "alice", "password")); 
    String command = "ls | grep dat \n"; 
    spawn.send(command); 
    try{ 
     spawn.expectClose(); 
    }catch(Exception e){} 
    String lsResults = spawn.getCurrentStandardOutContents().split("grep dat")[2]; 
    String[] lsRows = lsResults.split("\r\n"); //remove the 1st and the last