Bash 在等待字符串出现在活动窗口中时,`xdotool`能否替换`expect`脚本?

Bash 在等待字符串出现在活动窗口中时,`xdotool`能否替换`expect`脚本?,bash,shell,terminal,automation,expect,Bash,Shell,Terminal,Automation,Expect,我正在尝试查看是否可以从expect脚本移动到xdool 我使用andexpect脚本和这个spawn命令 ssh root@IP_ADDRESS -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 它等待: expect "$login@$addr\'s password:" 换句话说,它是一个非常简单的脚本,允许您通过ssh登录服务器,而无需输入密码。但除此之外,expect无法以“精确”的方式进行操作,我看到它反复发送

我正在尝试查看是否可以从
expect
脚本移动到
xdool

我使用and
expect
脚本和这个spawn命令

ssh root@IP_ADDRESS -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
它等待:

expect "$login@$addr\'s password:"
换句话说,它是一个非常简单的脚本,允许您通过
ssh
登录服务器,而无需输入密码。但除此之外,
expect
无法以“精确”的方式进行操作,我看到它反复发送错误的命令,而且对于简单的任务来说似乎不可靠

我在想也许能做得更好。例如,If
xdool
可以以某种方式监听终端上的字符串 等待:

"$login@$addr\'s password:"
这能做到吗


我现在唯一能想到的方法就是在我的脚本中添加
sleep
或类似的东西,让它等待登录,这可能会失败

尽管我非常喜欢
xdoool
以及几乎所有的脚本、配置文件、黑客和应用程序(++Jordan!),但我不认为
xdoool
是您在这里寻找的。至于
expect
tcl
python
perl
变体,脚本的逻辑可以像这些语言所允许的那样复杂和健壮

我将重新访问该脚本,并尝试使其更正确地处理可能的错误和登录提示更改。我要做的第二件事是不允许使用
ssh
进行root登录(实际上这是我要做的第一件事)。如果您使用的是SSH,那么您完全可以使用SSH配置文件、公钥加密、Kerberos、LDAP和其他方法,从安全策略和系统管理的角度方便、安全、易于管理地进行登录

做所有这些,然后想想如何使用
xdocool
——因为
xdocool
太棒了

ps:检查
ssh\u config
手册页面:这里有许多安全和方便的配置选项供您尝试实现