Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在从Java ProcessBuilder运行的shell中显示提示_Java_Android_Shell_Sh_Processbuilder - Fatal编程技术网

在从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。我现在可以接受