O problema é que, como alsactl
não termina até você forçá-lo a terminá-lo, a saída armazenada em buffer não pode ser gravada no arquivo, porque isso é feito após o comando ter terminado sua execução.
Você pode forçar o stdout
de alsactl
a ser armazenado em buffer de linha e, portanto, ser redirecionado imediatamente após cada linha de saída usando stdbuf
:
stdbuf -oL alsactl monitor > outputfile