Enter 키를 누르는 것을 시뮬레이션하고 몇 초 후에만 누르는 방법은 무엇입니까?

Enter 키를 누르는 것을 시뮬레이션하고 몇 초 후에만 누르는 방법은 무엇입니까?

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

mycommand12초 후에 빈 줄이 읽혀지고 파일의 끝이 즉시 표시됩니다. 이것이 문제인 경우 나중에 지연을 추가할 수도 있습니다.

(sleep 12; echo; sleep 5) | mycommand

명령 출력을 기반으로 입력 보내기 도 참조하세요 expect(실제 사용자가 있는 것처럼 보이게 만드는 의사 터미널도 사용함).

답변3

xdotool을 사용하여 "입력"을 시뮬레이션할 수 있습니다.

 xdotool key 'Return' | commandhere

아니면 잠자기 상태로 설정하고 다음 명령을 입력할 수도 있습니다.

sleep 0.5; xdotool key 'Return' | commandhere

관련 정보