제가 사용하고 있는 도구는 tool_1
파일로의 출력을 지원하지 않고 stdout
파일로의 출력만 지원합니다. 임시 파일(그 자리에서 생성됨)로 출력하고 내용을 다른 도구로 파이프하고 싶습니다 tool_2
. 배쉬에서 이것이 가능합니까?
기본적으로 두 개의 명령문을 하나로 결합하고 정리할 임시 파일을 우아하게 생성하고 싶습니다.
tool_1 ... > output
tool_2 ... < output
답변1
가능하지만 사용 시 몇 가지 주의 사항이 있습니다.프로세스 교체:
tool_1 ... >(tool_2 ...)
>(tool_2 ...)
파일 이름이 필요한 위치를 지정합니다 .tool_1
프로세스 교체는 파이프를 사용하여 어떤 형태로든 구현되므로 특히 파일이 지원하는 모든 것을 지원하지 않으며 결과 "파일"을 볼 방법이 없습니다.
이것이 적절하지 않은 경우 임시 파일을 사용하십시오.
file=$(mktemp); tool_1 ... "$file" && < "$file" tool_2 ...; rm "$file"