如何模拟按下回车键但仅在几秒钟后按下它?

如何模拟按下回车键但仅在几秒钟后按下它?

如果我想模拟按下回车键,我只需使用:

echo -ne '\n' | mycommand

但是“mycommand”需要等待几秒钟才能真正按下回车键。我怎样才能在模拟按下回车键之前等待几秒钟?

答案1

使用expect,类似这样的事情应该做:

#!/usr/bin/env expect
spawn "mycommand"
expect "Press Enter to continue" { send "\r" }
interact

当然,您需要将“按 Enter 继续”更改为实际消息。

答案2

(sleep 12; echo) | mycommand

mycommand12 秒后将读取一个空行,然后立即看到文件结尾。如果这是一个问题,您也可以在之后添加延迟:

(sleep 12; echo; sleep 5) | mycommand

另请参阅expect根据命令输出发送输入(它还使用伪终端,这使得它看起来像有一个真正的用户)。

答案3

您可以使用 xdotool 来模拟“输入”:

 xdotool key 'Return' | commandhere

或者你可以让它休眠然后输入命令:

sleep 0.5; xdotool key 'Return' | commandhere

相关内容