명령줄에서 .sh에 입력을 제공하는 방법

명령줄에서 .sh에 입력을 제공하는 방법

사용자에게 4가지 옵션을 표시하는 abc.sh 스크립트가 있는데 그 중 1개를 선택해야 합니다. 처음에는 입력을 1로 설정했습니다. 이제 첫 번째 옵션에 3개의 옵션이 다시 표시되고 두 번째 옵션으로 1을 선택해야 합니다. 이제 도메인 이름을 묻는 메시지가 표시되며 세 번째 옵션으로 abc/abc@xyz를 제공해야 합니다. 이제 ENV 세부 정보를 요청하고 ENV_NO를 제공해야 합니다. 이렇게 기존 스크립트 abc.sh에 4가지 다른 입력을 제공하고 싶습니다. 그러면 abc.sh의 단일 명령으로 위의 입력을 어떻게 자동으로 제공할 수 있습니까? 기존 abc.sh에서 아무것도 편집하고 싶지 않습니다.

답변1

표준 입력에서 4개의 항목을 읽는 기존 프로그램이 있고 실제로 상호 작용하지 않고 프로그램에 입력을 제공하려고 합니다.

다음과 같은 텍스트 파일( )을 준비할 수 있습니다 input.txt(데이터는 질문 텍스트에서 가져옴).

1
1
abc/abc@xyz
ENV_NO

그런 다음 다음과 같이 스크립트를 실행할 수 있습니다.

$ ./abc.sh <input.txt

이렇게 하면 스크립트가 키보드 상호 작용이 아닌 파일에서 읽혀지게 됩니다. 스크립트의 모든 출력은 입력 문제와 같이 터미널에 계속 표시되지만 입력은 지정된 파일에서 읽혀집니다.

파일 외에도 여기에서 설명서를 사용할 수도 있습니다.

./abc.sh <<END_INPUT
1
1
abc/abc@xyz
ENV_NO
END_INPUT

답변2

이것이 당신이 찾고 있는 것임을 알려주세요

read -r -p "`echo $'\n'`please enter your 1st option: " OPTION1
read -r -p "`echo $'\n'`please enter your 2nd option: " OPTION2
read -r -p "`echo $'\n'`please enter your domain: " OPTION3
read -r -p "`echo $'\n'`please enter your env: " OPTION4
echo "$OPTION1 $OPTION2 $OPTION3 $OPTION4"

관련 정보