.command < filename.txt
filename.txt
command
어떻게 보입니까?
내용을 이야기해 보면 filename.txt
다음과 같습니다.
To: [email protected]
Message: Some message
나는 비슷한 것을 시도했지만 운이 없었습니다. 이러한 방식으로 명령으로 구문 분석될 때 텍스트 파일의 내용은 어떤 모습입니까?command "To: [email protected]\n Message: Some message"
답변1
귀하의 시나리오에서는 command
표준 입력을 읽고 있습니다. 이 정보를 제공하는 다른 방법을 허용하지 않는 한 계속해서 이 방식으로 입력을 제공해야 합니다. 따라서 해당 파일을 사용하고 싶지 않다면,사용printf
파이프 포함:
printf "To: [email protected]\nMessage: Some message" | command
답변2
bash 및 ksh93과 같은 새로운 쉘은 리터럴 문자열을 STDIN의 명령에 전달하려는 경우 "document here" 및 "string here"를 지원합니다. 실제로 대부분의 쉘은 여기서 문서를 지원합니다.
문자열은 다음과 같습니다.
command <<<"some string"
여기에 있는 문서:
command <<END
this will be on
command's STDIN until
an END is encountered by itself
END
여기 문서에서는 <<
문서의 끝을 표시하기 위해 종결자로 뒤에 오는 것을 사용합니다. 종결자는 줄 시작 부분에 단독으로 나타나야 합니다. 다른 쉘에는 선행 탭 문자를 제거하는 옵션, 변수 확장 여부를 제어하기 위한 종결자의 다른 따옴표, 쉘 메타 문자 등과 같은 몇 가지 더 멋진 가능성이 있습니다. 자세한 내용은 쉘의 매뉴얼 페이지를 확인하십시오.
어쨌든 cat -
as 명령을 사용하면 두 구조를 쉽게 테스트할 수 있습니다. 저는 개인적으로 여기서 문자열을 많이 사용하고 있습니다.