바이너리 파일의 입력 프로세스 자동화

바이너리 파일의 입력 프로세스 자동화

실행될 때 사용자 입력을 요청하는 Unix 바이너리가 있습니다. 이 바이너리에 대한 입력은 수동으로 제공됩니다. 입력 내용을 이미 알고 있으므로 프로세스를 자동화하고 싶습니다. 바이너리 파일을 수정할 수 없습니다. 어떻게 해야 하나요? ant쉘 스크립트나 대상을 통해 이를 달성할 수 있습니까 ?

답변1

프로그램이 (터미널에서 직접 읽는 대신) 표준 입력에서 읽는 경우 다음과 같이 할 수 있습니다.

echo -e "answer1\nanswer2\nanswer3\n" | your_program

여기 문서아마도 더 읽기 쉬울 것입니다.

your_program <<'EOF'
answer1
answer2
answer3
EOF
do_more_stuff

(대신 임의의 문자열을 선택할 수 있습니다 EOF. 단, <<'somestring'동일한 문자열을 사용하여 입력 끝을 표시해야 합니다. 문자열은 입력 라인으로 표시되어서는 안 됩니다. 입력 마커의 끝은 들여쓰기되어서는 안 됩니다.)

더 복잡한 상호 작용이 필요한 경우 expect스크립트가 좋습니다.

답변2

입력이 많은 경우 입력을 파일에 넣을 수도 있습니다.

in.txt:
input1
input2
...
intputn

다음과 같이 바이너리를 호출합니다.

binary < in.txt

관련 정보