我在使用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] 删除。
我来说两句