當前位置: 首頁>>技術教程>>正文


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/zh-tw/article/8549.html,未經允許,請勿轉載。