Uma nota sobre a solução geral: para muitos programas que requerem um nome de arquivo você pode dar o caminho /dev/stdout
(um link para /proc/self/fd/1
, assumindo que os arquivos existam) e eles irão enviar sua saída para stdout
. Também é possível usar a substituição de processo em bash
com cat
, ou seja, foo -f >(cat) args | bar
(obrigado, g-man ).
Como pico2wave
verifica a extensão do arquivo, uma solução possível é fazer o symlink /dev/stdout
de um caminho com a extensão apropriada, idealmente em algum lugar como /var/local/
. Isso cria um arquivo extra, mas não por processo:
ln -s /dev/stdout /var/local/pico2wave.wav
, então pico2wave -w /var/local/pico2wave.wav "test" | aplay
funciona.