2012-10-25 67 views
0

我正在编写脚本来启动Java应用程序并安全地向Java应用程序提供密码。密码不应该回显到屏幕上,并且不应该列出正在运行的进程。下面的脚本能正常工作:stdin在bash和Java之间切换

echo -n "enter password: " 
read -r -s password 
java -classpath $CLASSPATH com.myclientscompany.Manage<<EOF 
$password 
EOF 

...用Java程序读取密码从标准输入线。

我面临的问题是,以这种方式获取密码后,我希望Java应用程序通过控制台以交互方式接受来自用户的更多输入。就目前而言,随后每次从Java中的stdin中读取数据都会立即返回null

有没有办法将标准输入切换回脚本输入在脚本的末尾?

+0

为什么'Manage'不能直接从'STDIN'读取?使用'<< EOF'将会从Java进程中关闭'STDIN'。 – 2012-10-25 10:07:38

+0

因为密码会在输入时回显到屏幕上。 – waifnstray

回答