2013-03-03 6 views
3

사용자가 터미널에 붙여 넣는 스 니펫이 있습니다.bash 서브 쉘에서 사용자 입력을 읽는 방법

"script..." | sudo bash -s ARG1 

스크립트 부분은 실제로 HTTP를 통해 스크립트를 가져 오는 말풍선 명령입니다.
또한 스크립트에 전달할 인수가 필요하며 bash에 -s 인수를 사용하여이 작업을 수행 할 수 있습니다. (이것은 모두 스 니펫의 일부입니다.)

그러나 작동하려면 "읽기"가 필요합니다. 사용자에게 추가 구성을 묻습니다. Subshells/stdin이 리다이렉트 (redirect) 되었기 때문에 지금은 작동하지 않습니다.

어떻게하면됩니까? 그것이 작동하지 않는

read answer < /dev/tty 
+0

당신의 기대가 올바른지 : – Petesh

답변

4

아마도 명시 적 지역 ​​리디렉션을 사용합니다. 솔루션은 Scrutinizer의 답변뿐만 아니라 tmp 파일을 다운로드하고 실행하여 스크립트에서 입력을 제거하는`-s` 옵션을 건너 뜁니다 (읽기 실패의 원인 인 I/O 포함)
+0

그랬습니다 . 많은 감사합니다! –

+1

이 답변으로 내가 겪고있는 문제는 입력 할 내용을 설명하는 에코가 있기 전에 읽기가 발생한다는 것입니다. –

+1

@DavidSulpy 다음을 시도하십시오. "read -p"대답 입력 : "대답

관련 문제