2013-03-07 60 views
0

用下面的代码我想从spawn.send("ls | grep *.dat\n");读取InputStream。我的执行Spawnable和它的方法​​,但没有线索如何使用它。 ExpectJ docs说:​​- 获取一个可读取Spawn标准输出的流。但是这并没有让我有任何进展。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