需要在脚本上自动回答半问题

时间:2016-12-09 02:25:23

标签: shell

是否可以自动回答前几个或部分问题并手动休息? 我正在连接到每日VPN,它首先提示说"是"或" no",第二个选择一个组,第三个输入用户名。最多三个问题,答案是一样的。第四个提示是物理RSA令牌输入,第五个提示是密码。

当我用前三个问题的输入文件编写脚本时(例如; ./script< inputfile),连接退出如下。

GROUP:[xxxx | abcdgroup01 | sssgroup01 | sssssgroup01z]:请输入您的用户名和密码。 用户名密码: fgets(stdin):设备不适当的ioctl

这是因为脚本没有从输入文件中获得第四个答案。

在五个输入中,四个是静态输入,第四个是动态输入。 如何设法手动输入第四个输入?

请帮忙;提前谢谢!

2 个答案:

答案 0 :(得分:1)

我刚发现这种方法,看起来很有效!

{echo yes; echo xxxxx; echo xxxx;读rsa; echo $ rsa; echo xxxx; } | ./script.sh

还有其他方式吗?

答案 1 :(得分:0)

还有其他方法,但对于您的情况,您的方法似乎并不是那么糟糕。

如果您真的希望用户从script.sh查看原始提示,则必须创建 expect 程序来驱动您的脚本;请参阅expect的手册页。

如果允许更改script.sh,则可以添加从外部提供某些参数的可能性(文件或环境变量),并仅询问那些未提供的参数。这将是IMO最好的方法。