在从Java ProcessBuilder运行的shell中显示提示
我运行一个在从Java ProcessBuilder运行的shell中显示提示,java,android,shell,sh,processbuilder,Java,Android,Shell,Sh,Processbuilder,我运行一个shshell进程,如下所示: ProcessBuilder pb = new ProcessBuilder(); pb.command("sh"); Process p = pb.start(); 然后我将命令推入其输出流,并从其输入流读取输出。一切正常-我有一个外壳 但是shell没有提示。如果我通过adb在设备上运行“sh”,我会得到一个提示。我可以使用PS1=blah更改提示。但是当从ProcessBuilder运行sh时,没有提示 如何显示提示?技巧是强制shell以“交互
sh
shell进程,如下所示:
ProcessBuilder pb = new ProcessBuilder();
pb.command("sh");
Process p = pb.start();
然后我将命令推入其输出流,并从其输入流读取输出。一切正常-我有一个外壳
但是shell没有提示。如果我通过adb在设备上运行“sh”,我会得到一个提示。我可以使用PS1=blah
更改提示。但是当从ProcessBuilder
运行sh
时,没有提示
如何显示提示?技巧是强制shell以“交互”模式运行-相当于使用
sh-I
:
ProcessBuilder pb = new ProcessBuilder();
pb.command("sh", "-i");
Process p = pb.start();
这是可行的,但不幸的是,人们抱怨找不到tty fd。现在我可以接受了。诀窍是强制shell以“交互”模式运行-相当于使用
sh-I
:
ProcessBuilder pb = new ProcessBuilder();
pb.command("sh", "-i");
Process p = pb.start();
这是可行的,但不幸的是,人们抱怨找不到tty fd。我现在可以接受