将多行stdin输入以非交互方式传递给交互式Java命令行程序

时间:2011-04-12 15:00:49

标签: java linux testing unix

我有一个命令行java程序,它接受密码并从stdin验证。不幸的是,修改程序不是一种选择,因为它是专有的。

我无法使用<从unix命令行传递参数,因为程序中有两个提示,都要求输入相同的密码。在命令提示符下有stdout语句要求“密码”和“密码(验证):”。

如何以非交互方式将密码传递给该程序,以便可以使用cron job / RC脚本自动执行?

谢谢!

2 个答案:

答案 0 :(得分:1)

有可能根本没有从stdin读取密码,而是从/ dev / tty读取密码。在那种情况下,你运气不好。

你可以通过stdin输入包括密码在内的所有输入来运行程序吗?如果没有,那你就不走运了。

但是,如果这样可行,您可以执行类似

的操作
(echo user; echo passwd1; echo passwd1; cat) | java -jar yourCommandlineprogram.jar 

答案 1 :(得分:1)

您的问题不确定Expect是否可以接受。