将密钥发送到终端

马可

我在使用docker启动数据库容器时遇到问题。首次启动数据库的二进制文件(dblxsrv)时,它首先要求提供产品密钥。因此,用户必须输入产品媒体密钥(PMC)并按Enter键(这发生在终端中,而不是窗口或其他东西中)。这就是为什么用户始终需要启动连接的容器才能进入PMC的原因。

我想知道是否可以通过bash脚本发送此键,以便数据库完全启动(模拟键盘输入)。

我想到了某事。喜欢:

./dblxsrv
xdotool key 'X'
xdotool key 'X'
xdotool key 'X'
xdotool key 'X'
xdotool key '-'
xdotool key 'X'
xdotool key 'X'
xdotool key 'X'
xdotool key 'X'

但是我猜想这将行不通,因为脚本将在第一行停止,等待dblxsrv完成,因此永远不会到达以下行。有任何想法吗?

彼得·科德斯

(嗯,只是注意到有人已经expect在评论中提出了建议,但这仍然在未回答的问题队列中,因为它没有被发布为答案。)

因此,您有一个dblxsrv需要在stdin上进行一些输入的程序(),并且想编写一个包装器以在启动时将其输入。

您应该能够做到:

dblxsrv < key.txt

如果这不起作用,并且您需要等待提示,然后再提供更多输入,则GNU Expect可以解决问题。它使用适当的tty而非文件来运行子进程。您可以使用基于Tk的编程语言编写与程序交互的脚本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章