파일로만 출력하는 프로그램의 파이프 출력

파일로만 출력하는 프로그램의 파이프 출력

pico2wave파일로의 출력(편집: 확장자 포함 .wav)만 지원됩니다. aplay명명된 파이프, 임시 파일 또는 래퍼 스크립트를 정리하지 않고 출력을 파이프에 강제로 적용하려면 어떻게 해야 합니까 ?

즉, pico2wave -w tmp.wav "test" && aplay tmp.wav && rm tmp.wav임시 파일을 생성하므로 내가 찾고 있는 솔루션이 아닙니다.

답변1

/dev/stdout일반적인 해결 방법에 대한 참고 사항: 파일 이름이 필요한 많은 프로그램의 경우 경로 (해당 파일이 존재한다고 가정하여 에 대한 링크 ) 를 제공 /proc/self/fd/1하면 출력을 기꺼이 해당 파일로 보낼 것입니다 stdout. bash에서 프로세스 교체를 사용할 수도 있습니다 cat. 즉 foo -f >(cat) args | bar, (감사합니다.g 남성).

파일 확장자가 확인 되었으므로 pico2wave가능한 해결책은 /dev/stdout적절한 확장자를 가진 경로(예: 와 같은)에 심볼릭 링크를 연결하는 것입니다 /var/local/. 이렇게 하면 추가 파일이 생성되지만 프로세스별로 생성되지는 않습니다. ln -s /dev/stdout /var/local/pico2wave.wav그러면 pico2wave -w /var/local/pico2wave.wav "test" | aplay괜찮습니다.

관련 정보