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
大丈夫です。