Eu uso um utilitário chamado mp3wrap que combina vários mp3s em um. Digamos que eu tenha um diretório "album 1" contendo três arquivos "track 1.mp3", "track 2.mp3" e "track 3.mp3". Eu vou executar o seguinte:
mp3wrap album\ 1.mp3 album\ 1/*.mp3
que combinará todas as três faixas no diretório "album 1" (o segundo argumento) em um novo arquivo "album 1.mp3" (o primeiro argumento).
Eu tenho um monte de diretórios como este, "album 2", "album 3" etc., e eu gostaria de escrever um script para automatizar o processo. Eu tentei isso:
for i in album*
do
mp3wrap $i.mp3 $i/*.mp3
done
mas recebo o erro
1.mp3: No such file or directory
Parece que meu script expande $ i para "album 1.mp3", que é passado como dois argumentos separados. Depois de pesquisar e ler, acabei com isso:
for i in album*
do
mp3wrap "${i}.mp3" "${i}/*.mp3"
done
Agora eu não recebo uma mensagem de erro, em vez disso eu recebo a página "usage" do programa mp3wrap. Então, claramente, ele não está recebendo os argumentos da mesma maneira que quando executo o comando a partir da linha de comando, e não sei como verificar a aparência da linha de comando quando executada pelo script bash.
O que estou fazendo de errado? Qualquer ajuda apreciada!