read
예 / 아니오 옵션과 같이 대화식으로 명령에 대한 인수를 읽는 명령을 사용하는 bash 스크립트가 있습니다. 기본 옵션 값을 인수로 전달하는 비대화 형 스크립트에서이 스크립트를 호출하는 방법이 있습니까?
대화 형 스크립트에 전달해야하는 옵션이 아닙니다.
답변
더 복잡한 작업에는 expect
( http://en.wikipedia.org/wiki/Expect )가 있습니다. 기본적으로 사용자를 시뮬레이션하고 특정 프로그램 출력 및 관련 항목에 반응하는 방법을 스크립트로 코딩 할 수 있습니다.
이것은 ssh
암호를 파이핑하는 것을 금지하는 경우에도 작동 합니다.
답변
여러 가지 방법
입력 파이프
echo "yes
no
maybe" | your_program
파일에서 리디렉션
your_program < answers.txt
here 문서를 사용 하십시오 (이것은 매우 읽을 수 있습니다)
your_program << ANSWERS
yes
no
maybe
ANSWERS
용도 여기에 문자열을
your_program <<< $'yes\nno\nmaybe\n'
답변
데이터를 파일에 넣고 다음과 같이 리디렉션 할 수 있습니다.
$ cat file.sh
#!/bin/bash
read x
read y
echo $x
echo $y
스크립트 데이터 :
$ cat data.txt
2
3
스크립트 실행 :
$ file.sh < data.txt
2
3
답변
한 가지 더 추가하고 싶습니다. 다른 곳에서 찾았고 아주 간단합니다. “execute_command”명령에 대한 명령 줄의 모든 프롬프트에 대해 yes를 전달하고 싶다고 말하면 간단히 yes를 파이프합니다.
yes | execute_command
모든 예 / 아니오 프롬프트에 대한 대답으로 예를 사용합니다.
답변
printf를 사용하여 입력을 스크립트로 파이프 할 수도 있습니다.
var=val
printf "yes\nno\nmaybe\n$var\n" | ./your_script.sh
답변
anothe ralternative는
echo "something" | tee /path/to/file
tee 명령은 수신 한 입력을 화면에 인쇄하고 동시에 파일에 저장합니다.