나는 행운을 들이지 않고 쉘 스크립트에서 여러 번 stdin에서 읽으려고합니다. 먼저 stdin 파이프에서 읽은 파일 목록을 읽은 다음 두 번 더 읽어서 대화식으로 두 개의 문자열을 얻습니다. (내가하려는 것은 전자 메일, 제목 및 전자 메일 본문에 첨부 할 파일 목록을 읽는 것입니다.)bash에서 stdin을 여러 번 읽음
지금까지 나는이 있습니다
photos=($(< /dev/stdin))
echo "Enter message subject"
subject=$(< /dev/stdin)
echo "Enter message body"
body=$(< /dev/stdin)
(플러스 오류가 나는 succintness을 위해 생략 코드 확인) 두 번째와 세 번째 리디렉션은 EOF를 얻을 수 있기 때문에
그러나, 이것은 아마도 빈 제목과 본문을 얻는다을 .
난 닫히고 다시 열려고 시도했습니다 < & - 그리고 그런 식으로 작동하지 않는 것 같습니다.
"while; read line"루프를 사용하여 파일 목록에 구분 기호를 사용하고 분리 기호가 감지되었을 때 루프에서 빠져 나오기까지했습니다. 그러나 그것도 (?) 작동하지 않았다.
아이디어를 어떻게 만드 는가?
나를 위해 작동하지 않는 이유는 파이프를 사용하여 사진 목록을 전달하려고하기 때문입니다. 목록 앞에있는 해당 필드를 단순히 읽으면 목록에있는 두 개의 첫 번째 사진이 제목과 이메일 본문이됩니다. 이는 내가 원하는 것이 아닙니다. (물론, 필자는 피사체와 몸체가 입력 파이프의 처음 두 줄에 전달되어야한다고 지시 할 수 있지만 그것은 나에게 너무 추악합니다.) – alvherre