如果我想模拟按下回车键,我只需使用:
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
mycommand
12 秒后将读取一个空行,然后立即看到文件结尾。如果这是一个问题,您也可以在之后添加延迟:
(sleep 12; echo; sleep 5) | mycommand
另请参阅expect
根据命令输出发送输入(它还使用伪终端,这使得它看起来像有一个真正的用户)。
答案3
您可以使用 xdotool 来模拟“输入”:
xdotool key 'Return' | commandhere
或者你可以让它休眠然后输入命令:
sleep 0.5; xdotool key 'Return' | commandhere