繁体   English   中英

从Java ProcessBuilder运行的shell中显示提示

[英]Display prompt in a shell run from Java ProcessBuilder

我运行这样的sh shell进程:

ProcessBuilder pb = new ProcessBuilder();
pb.command("sh");
Process p = pb.start();

然后将命令推入其OutputStream并从其InputStream读取输出。 一切正常-我有一个外壳。

但是 ,shell没有提示。 如果通过adb在设备上运行“ sh”,则会出现提示。 我可以使用PS1=blah更改提示。 但是当从ProcessBuilder运行sh时,没有提示。

我如何使提示出现?

诀窍是迫使shell以“交互”模式运行-等同于使用sh -i

ProcessBuilder pb = new ProcessBuilder();
pb.command("sh", "-i");
Process p = pb.start();

那行得通,但不幸的是抱怨找不到tty fd。 我现在可以忍受。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM