Problema de substituição de comandos, confuso

0

Estou tentando fazer com que o sox reproduza um arquivo a partir da entrada do usuário. Para fazer isso, eu configurei um comando como o abaixo:

$ play proc/$(read -n 1).wav

Eu tenho arquivos 0. wav através de 9.wav localizados no diretório proc. Eu posso jogar um deles como o exemplo abaixo:

$ play proc/4.wav

No entanto, quando tento fazer isso com a entrada do usuário, pressiono o número 4 e é isso que ele gera:

4play FAIL formats: can't open input file 'proc/.wav': No such file or directory

Alguma ideia? Estou confuso.

    
por user530873 27.07.2013 / 05:53

1 resposta

3

Eu acho que o problema que você está tendo é que o comando bash read não grava o resultado para stdout, ele armazena os resultados em variáveis, sejam nomes passados como argumentos, ou na variável REPLY.

Então, por exemplo, acho que o que você quer aqui é algo como:

read -n1 track
play "proc/$track.wav"

Você pode ver todos os detalhes digitando help read no bash.

    
por Jason Conti 27.07.2013 / 06:09