当前位置: 首页>>技术教程>>正文


linux – 在bash脚本中模拟ENTER键

, , ,

问题描述

我创建了一个非常简单的bash脚本,该脚本运行一些命令。这些命令之一在运行时需要用户输入。即它询问用户“您想等等吗?”,我只想向其发送回车按键,以便脚本将完全自动化。

我将不必在运行时等待输入或其他任何东西,它足以发送按键,输入缓冲区将处理其余部分。

最佳方法

echo -ne '\n' | <yourfinecommandhere>

或利用echo生成的隐式换行符(感谢Marcin)

echo | <yourfinecommandhere>

现在我们可以简单地使用--sk选项:

--sk, --skip-keypress Don’t wait for a keypress after each test

sudo rkhunter --sk --checkall

次佳方法

您可能会发现yes命令很有用。

参见man yes

第三种方法

您可以只使用yes

# yes "" | someCommand

第四种方法

这是使用expect的示例用法:

#!/usr/bin/expect
set timeout 360
spawn my_command # Replace with your command.
expect "Do you want to continue?" { send "\r" }

检查:man expect了解更多信息。

第五种方法

您可以使用expect(示例中附带有期望)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8549.html,未经允许,请勿转载。