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<luchya...@gmail.com>
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>
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>
--
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