다른 프로세스가 종료될 때까지 터미널에서 실행 중인 다른 프로세스에 여러 Enter 키를 제공할 수 있는 Linux 명령이 있습니까?
예를 들어 명령을 고려하십시오 yes ' ' | ./ssr-sim prepare
. |
파이프()의 LHS 측에 명령이 필요합니다. 예를 들어, 다른 명령은 yes ' '
왼쪽이 아닌 오른쪽에 |
여러 개의 Enter 키를 제공합니다 ../ssr-sim prepare
쉘 스크립트에서 키 입력을 자동화하고 싶고 명령이 ./ssr-sim prepare
비밀번호를 여러 번 요청하는 출력을 생성하고 사용자는 Enter매번 수동으로 키를 눌러야 합니다(여기서 비밀번호를 제공할 필요가 없으며 Enter누를 때마다 요청하면 됩니다). ). Enter 키 부분을 자동으로 눌러야합니다.
이 명령은 yes ' ' | ./ssr-sim prepare
효과가 없습니다.
답변1
echo
대화형 프로그램에 대한 ing 또는 ing 입력이 프로그램을 속이는 데 충분하지 않은 경우 yes
이는 일반적으로 입력이 실제로 터미널인지 파이프인지 똑똑하게 확인하려고 하기 때문입니다. 이를 위해서는 사람들이 일반적으로 사용하는 더 큰 망치가 필요합니다.예상되는, 이 문제를 회피하기 위해 작성되었습니다.
답변2
printf \\n%.0b `seq 1 ${NUMBER OF TIMES YOU WANT}` | $CMD
만약 당신의$CMD
이 파이프가 마음에 들지 않으면 다음을 시도해 볼 수 있습니다.
printf 'PRESS CTRL+V then ENTER TWICE\n' >&2 ; read -r ENTER
$CMD <<YESALREADY
$(printf "$ENTER\n%.0b" `seq 1 ${NUMBER OF TIMES YOU WANT}`)
YESALREADY
그래도 문제가 해결되지 않으면 비슷한 솔루션을 찾아야 합니다.expect
이미 언급했거나pty
.예를 들어,zsh
내장되어 있습니다zpty
기준 치수.