如何获得shell执行的响应

时间:2012-07-23 10:30:09

标签: android bash shell process

我想要实现的只是从执行中获得响应。 例如,如果我执行这样的命令“ls” 我想获得所有文件和目录的字符串

例如像这样

Runtime.getRuntime().exec("ls");

但我不知道如何得到答复。

我运行这样的东西,我以为我会重定向输出但仍然没有

Runtime.getRuntime().exec("ls",null,new File("/sdcard/myFile") );

我也尝试了类似的东西,但仍然没有

Runtime.getRuntime().exec("echo | ls > /sdcard/myfile");

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

String cmd = "commands";
Process process = Runtime.getRuntime().exec(cmd);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));

StringBuilder log = new StringBuilder();
String line;
 while ((line = bufferedReader.readLine()).length() > -1)
 {
  log.append(line);
 }

答案 1 :(得分:0)

试试这段代码

try {
     String[] commands = {"dumpstate > /sdcard/log1.txt"};
     Process p = Runtime.getRuntime().exec("/system/bin/sh -");
     DataOutputStream os = new DataOutputStream(p.getOutputStream());            
        for (String tmpCmd : commands) {
                os.writeBytes(tmpCmd+"\n");
        }
    } catch (IOException e) {
    e.printStackTrace();
    }