실행될 때 사용자 입력을 요청하는 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