que parametro voce esta passando na hora de executar o script?
2011/8/5 Luciano de Souza <[email protected]> > Se faço echo $file, são listados corretamente todos os arquivos existentes > no diretório. > > Mas se faço echo "$file.mp3", então, obtenho "/tmp/audioshelf/*.mp3". Este > é um resultado estranho porque, em lugar de *, esperava encontrar o nome do > arquivo. E se a cada iteração o lame encontra * em lugar do arquivo, não se > admira que nada tenha conseguido converter. > > então, se faço: "open" ou "create", as funções são processadas normalmente. > Se faço "converte", obtenho um erro na linha do lame porque a cada iteração > ele parece não processar adequadamente. E quando faço "close", ele novamente > não me permite apagar os arquivos do diretório e, como resultado, quando se > deseja apagar o próprio diretório, ele ainda está cheio. > > Em suma, parece que o problema encontra-se na concatenação de $tmp_shelf > com "/*". > > Eis o script com a função close: > > > #!/bin/bash > > #Audioshelf > > speed=260 > amplitude=140 > voice="pt-br" > split=20 > quality=128 > tmp_shelf="/tmp/audioshelf" > > open() > { > mkdir $tmp_shelf > } > > create() > { > echo "Criando $1" > > espeak -f "./$1" -w "$tmp_shelf/$1" -v $voice -s $speed -a $amplitude > --split=$split > } > > convert() > { > for track in "$tmp_shelf/*" > do > echo "$track.mp3" > # lame -b 128 $track "$track.mp3" > done > > } > > close() > { > rm "$tmp_shelf/*" > rmdir $tmp_shelf > } > > > > Em 04-08-2011 23:06, Fabiano Barros escreveu: > >> tente mudar como abaixo pra vc ver a saida da variavel file. >> >> >> convert() >> { >> for file in "$tmp_shelf/*" >> do >> echo $file >> done >> >> } >> >> >> >> >> >> >> 2011/8/4 Luciano de Souza<[email protected]> >> >> Caros, >>> >>> Desejo converter um arquivo de texto em audiolivro. Para tanto criei um >>> shellscript, mas ele dá erro na linha: for file in "$tmp_shelf/*" >>> >>> #!/bin/bash >>> >>> #Audioshelf >>> >>> speed=260 >>> amplitude=140 >>> voice="pt-br" >>> split=20 >>> quality=128 >>> tmp_shelf="/tmp/audioshelf" >>> >>> open() >>> { >>> mkdir $tmp_shelf >>> } >>> >>> create() >>> { >>> espeak -f "./$1" -w "$tmp_shelf/$1" -v $voice -s $speed -a $amplitude >>> --split=$split >>> } >>> >>> convert() >>> { >>> for file in "$tmp_shelf/*" >>> do >>> lame "$file" "$file.mp3" -b $quality >>> done >>> >>> } >>> >>> convert >>> >>> O que poderia estar errado. Não tenho dúvidas quanto à sintaxe de espeak >>> e >>> de lame e, de qualquer modo, o Bash diz que o erro encontra-se na linha >>> que >>> mencionei. >>> >>> Luciano >>> >>> -- >>> Mais sobre o Ubuntu em português: >>> http://www.ubuntu-br.org/****comece<http://www.ubuntu-br.org/**comece> >>> <http://www.ubuntu-br.**org/comece <http://www.ubuntu-br.org/comece>> >>> >>> >>> Lista de discussão Ubuntu Brasil >>> Histórico, descadastramento e outras opções: >>> https://lists.ubuntu.com/****mailman/listinfo/ubuntu-br<https://lists.ubuntu.com/**mailman/listinfo/ubuntu-br> >>> <htt**ps://lists.ubuntu.com/mailman/**listinfo/ubuntu-br<https://lists.ubuntu.com/mailman/listinfo/ubuntu-br> >>> > >>> >>> >> >> > > -- > Mais sobre o Ubuntu em português: > http://www.ubuntu-br.org/**comece<http://www.ubuntu-br.org/comece> > > Lista de discussão Ubuntu Brasil > Histórico, descadastramento e outras opções: > https://lists.ubuntu.com/**mailman/listinfo/ubuntu-br<https://lists.ubuntu.com/mailman/listinfo/ubuntu-br> > -- Fabiano Barros Cel.: 55 15 9715-8004 [email protected] -- Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece Lista de discussão Ubuntu Brasil Histórico, descadastramento e outras opções: https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

