我有一个调用(使用调用Runtime.getRuntime()EXEC。)bash脚本这样的Java应用程序:调用Bash交互
read -e -p "Are you sure you want to do this? (y/n)? "
echo "$REPLY"
的问题是,我从来没有提示部分从bash脚本(“你确定...”文本)。
有没有办法从Java调用交互式bash脚本,以便我可以读取它的输出?我需要它,以便能够确定我正在被脚本询问哪个问题(实际上它是一个比这里描述的更大的脚本)。
如果我通过SSH通道使用-t标志(t标志上的重音,没有它不会工作)运行从Java通道的过程,它工作正常。但是我想避免为了正确运行脚本,或者更准确地说,要正确地读取其输出,而不得不自己ssh。
-p prompt
Display prompt on standard error, without a trailing new‐
line, before attempting to read any input. The prompt is
displayed only if input is coming from a terminal.
所以你应该确保你也捕获标准错误,如果你想看到这样的信息:在谈论read
时
谢谢你的这个链接,这对我也有很大的帮助。我不想包含整个库,所以我只是添加了一行'processBuilder.environment()。put(“TERM”,“xterm”);',这使得'ProcessBuilder'就像是一个终端。 – dounyy