Programing

프로그램 설치에 대한 "예"응답을 어떻게 스크립팅합니까?

lottogame 2020. 8. 29. 11:49
반응형

프로그램 설치에 대한 "예"응답을 어떻게 스크립팅합니까?


저는 Amazon Linux 인스턴스로 작업하고 데이터를 채우고 작업하는 모든 프로그램을 설치하는 몇 가지 스크립트가 있지만 몇 가지 프로그램에서 다음을 묻습니다.

Do you want to continue [Y/n]?

설치를 일시 중지하십시오. 모든 경우에 "Y"로 자동 응답하고 싶습니다. 이제 어떻게해야할지 확신합니다.


'예'명령 것이다 에코 'Y'(또는 당신이 그것을 물어 무엇이든) 무기한. 다음과 같이 사용하십시오.

yes | command-that-asks-for-input

또는 대문자 'Y'가 필요한 경우 :

yes Y | command-that-asks-for-input

echo y | command 작동해야합니다.

또한 일부 설치 프로그램에는 "auto-yes"플래그가 있습니다. 그것은의 -y를위한 apt-get우분투.


대상 서버에 Expect를 설치하지 못할 수 있습니다. 예를 들어 Jenkins 작업을 작성하는 경우가 많습니다.

그렇다면 askubuntu.com에서 다음과 같은 답변을 고려할 것입니다.

https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line

printf 'y\nyes\nno\nmaybe\n' | ./script_that_needs_user_input

드문 경우지만이 명령은 사용자가 문자 뒤에서 Enter를 누르지 않아도됩니다. 이 경우 개행 문자를 제외하십시오.

printf 'yyy' | ./script_that_needs_user_input

완전성을 위해 여기 문서를 사용할 수도 있습니다.

./script_that_needs_user_input << EOF
y
y
y
EOF

또는 쉘이 here 문자열을 지원하는 경우 :

./script <<< "y
y
y
"

또는 한 줄에 하나의 입력으로 파일을 만들 수 있습니다.

./script < inputfile

다시 말하지만,이 답변에 대한 모든 크레딧은 askubuntu.com , lesmana 의 답변 작성자 에게 있습니다.


이것이 당신이 원하는 것보다 더 복잡하고 무거울 수 있지만,이를 수행하는 매우 유연한 방법 중 하나는 Expect (또는 다른 프로그래밍 언어의 파생물 중 하나) 와 같은 것을 사용하는 것 입니다.

Expect는 텍스트 기반 응용 프로그램을 제어하기 위해 특별히 설계된 언어로, 바로 사용자가 원하는 작업입니다. 더 복잡한 작업을 수행해야하는 경우 (예 : 실제로 다음에 수행 할 작업 / 답변을 결정하는 논리) Expect를 사용하는 것이 좋습니다.


기본값을 그대로 사용하려면 다음을 사용할 수 있습니다.

\n | ./shell_being_run

-y설치 명령 을 입력 하면됩니다.

예를 들면 : yum install <package_to_install> -y

참고 URL : https://stackoverflow.com/questions/7642674/how-do-i-script-a-yes-response-for-installing-programs

반응형