Bash 스크립트를 사용하여 대화형 프로그램 실행

Bash 스크립트를 사용하여 대화형 프로그램 실행

오늘이 bash에서의 첫날입니다. 어쩌면 이 질문은 이전에 요청되었을 수도 있지만 Google을 시도했지만 결과가 비어 있었습니다. 어쩌면 내 문제를 어떻게 표현해야 할지 모르기 때문일 수도 있습니다.

나는 최종 사용자에게 일련의 질문을 던지고 결국 그 질문을 사용하여 일부 서버를 설정하는 맞춤형/사내 Linux 프로그램을 가지고 있습니다. 이제 bash 스크립트가 bin 파일을 호출하고 정적 응답을 제공하도록 이를 자동화하고 싶습니다. 이상적으로는 질문받은 순서대로 답변을 파일에 저장한 다음 프로그램에 제공하고 싶습니다.

이제 저는 파일을 읽는 샘플 스크립트를 작성하고 있습니다. 하지만 파일 입력을 프로그램에 대한 답변 제공과 결합하여 사용하는 예를 찾을 수 없습니다.

어떤 조언이라도 대단히 감사하겠습니다.

편집 1

나는 다음을 시도합니다 :

#!/bin/bash
echo "This script is about to call mytestapp"
mytestapp
printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n
~

이 프로그램을 실행하면 "mytestapp" 프로그램이 시작되지만 첫 번째 질문에서 다음과 같은 입력을 기다리고 있습니다.

dev1:~# sh /tmp/test_wrapper.sh 
This script is about to call mytestapp
Enter the 3-letter location code (e.g. usa):

그리고 스크립트의 printf 문은 결코 적용되지 않습니다.

편집 2

내 실수를 발견했습니다. 매개변수를 애플리케이션에 파이프로 연결해야 합니다.

 printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n' | mytestapp

답변1

명령을 사용할 수 있지만 printf일반적으로 다음을 사용하여 이해하고 유지 관리하는 것이 더 쉽습니다.여기 문서:

mytestapp <<EOF
lab
i1
6cr
197
0
252
888
4

America/Toronto
EOF

관련 정보