【发布时间】:2012-10-15 11:51:45
【问题描述】:
我正在编写一个脚本来启动 Java 应用程序并安全地为 Java 应用程序提供密码。密码不应回显到屏幕上,并且不应被列出正在运行的进程的任何人看到。以下脚本适用于此:
echo -n "enter password: "
read -r -s password
java -classpath $CLASSPATH com.myclientscompany.Manage<<EOF
$password
EOF
...Java 程序从标准输入读取密码作为一行。
我面临的问题是,在以这种方式获取密码后,我希望 Java 应用程序通过控制台以交互方式接受用户的进一步输入。就目前而言,随后在 Java 中从标准输入读取的每次尝试都会立即返回 null。
有没有办法在脚本结束时将标准输入切换回接受控制台输入?
【问题讨论】:
-
为什么
Manage不直接从STDIN读取?使用<<EOF将关闭STDIN形成Java 进程。 -
因为密码会在输入时回显到屏幕上。