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