ファイルのみ出力するプログラムのパイプ出力

ファイルのみ出力するプログラムのパイプ出力

pico2waveファイルへの出力(編集:拡張子を含む.wav)のみがサポートされています。aplay名前付きパイプ、一時ファイル、またはラッパースクリプトをクリーンアップせずに出力をパイプに強制的に適用するにはどうすればよいですか?

つまり、pico2wave -w tmp.wav "test" && aplay tmp.wav && rm tmp.wav一時ファイルを生成するので、私が探しているソリューションではありません。

ベストアンサー1

/dev/stdout一般的な回避策に関する注意:ファイル名を必要とする多くのプログラムの場合、パス(そのファイルが存在すると仮定してへのリンク)を指定すると、出力をそのファイルに送信/proc/self/fd/1することができますstdoutbashでプロセス交換を使用することもできます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大丈夫です。

おすすめ記事