Enter キーを押すのをシミュレートするには、次のようにします。
echo -ne '\n' | mycommand
ただし、「mycommand」は実際にEnterキーを押す前に数秒待つ必要があります。 Enterキーを押すのをシミュレートする前に、数秒間どのように待つことができますか?
答え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