Oi, Verdade, tou meio enferrujado e nem lembrei do IFS. Mas não tá rolando.. Tá dando outro erro.
#!/bin/sh OLDIFS=$IFS IFS=' ' [ -z $1 ] && exit 1 ARQUIVOOGG=$1 EXTENSION=${ARQUIVOOGG:${#ARQUIVOOGG}-4:4} #echo $EXTENSION [ $EXTENSION == '.ogg' ] || exit 1 ARQUIVOMP3=${ARQUIVOOGG%.ogg}".mp3" ARQUIVOMP3=${ARQUIVOOGG/ogg/mp3} COMANDO="oggdec \"${ARQUIVOOGG}\" -o - | lame - \"${ARQUIVOMP3}\"" echo $COMANDO $COMANDO IFS=$OLDIFS qndo rodo, ele dá 'command not found'. só q o oggdec tá instalado. ele encara a linha $COMANDO de forma diferente por causa do IFS. Se eu coloco o IFS=$OLDIFS de volta, antes de executar $COMANDO, ele dá o erro anterior (ERROR: Can only specify one input file if output filename is specified). Acho q sed não rola, pq o '\ 'nao é obrigatório. eu posso rodar o script com o arquivo entre aspas, do shell. nao vai ter '\ ' (que o tab completion coloca por mim. Além do mais, a brincadeira é fazer todo em bash =]. Alguma outra dica? On 4/4/07, edjunior <[EMAIL PROTECTED]> wrote: > > hey > > a velha dica de alteração do IFS não funfa? Tente setar o IFS como > quebra de linha antes de trabalhar com os nomes dos arquivos dentro do > seu script > > IFS=" > " > > (vide exemplo em > http://www.mail-archive.com/shell-script@yahoogrupos.com.br/msg05769.html) > > hasta! > > jr. > > On 4/4/07, Christian Andreas Miniero Casza <[EMAIL > PROTECTED]<xpto%40aunit.com.br>> > wrote: > > Maurício, > > > > utilize o sed para converter '\ ' em '\\\ ' no nome do arquivo. > > Seria: sed 's/\ /\\\ /g'. > > > > Isso deve resolver seu problema. > > > > > On Wed, 4 Apr 2007 08:13:49 -0300, "Mauricio Vieira" < > [EMAIL PROTECTED] <mauricio.vieira%40gmail.com>> wrote: > > > Olá a todos, > > > > > > Fiz um pequeno script para converter arquivos ogg pra mp3 (a partir > desta > > > msg, é domínio público). > > > > > > #!/bin/sh > > > > > > [ -z $1 ] && exit 1 > > > > > > ARQUIVOOGG=$1 > > > EXTENSION=${ARQUIVOOGG:${#ARQUIVOOGG}-4:4} > > > #echo $EXTENSION > > > [ $EXTENSION == '.ogg' ] || exit 1 > > > > > > ARQUIVOMP3=${ARQUIVOOGG%.ogg}".mp3" > > > ARQUIVOMP3=${ARQUIVOOGG/ogg/mp3} > > > > > > COMANDO="oggdec \"${ARQUIVOOGG}\" -o - | lame - \"${ARQUIVOMP3}\"" > > > echo $COMANDO > > > $COMANDO > > > > > > Acontece que os arquivos mp3 contém espaços no nome. > > > Um exemplo: > > > > > > sh -x ~/bin/ogg2mp3.sh 07\ -\ Once\ Upon\ The\ Sea\ Of\ Blissful\ > > > Awareness.ogg > > > + '[' -z 07 - Once Upon The Sea Of Blissful Awareness.ogg ']' > > > /home/vieira/bin/ogg2mp3.sh: line 3: [: too many arguments > > > + ARQUIVOOGG='07 - Once Upon The Sea Of Blissful Awareness.ogg' > > > + EXTENSION=.ogg > > > + '[' .ogg == .ogg ']' > > > + ARQUIVOMP3='07 - Once Upon The Sea Of Blissful Awareness.mp3' > > > + ARQUIVOMP3='07 - Once Upon The Sea Of Blissful Awareness.mp3' > > > + COMANDO='oggdec "07 - Once Upon The Sea Of Blissful Awareness.ogg" > -o - > > > | > > > lame - "07 - Once Upon The Sea Of Blissful Awareness.mp3"' > > > + echo oggdec '"07' - Once Upon The Sea Of Blissful 'Awareness.ogg"' > -o - > > > '|' lame - '"07' - Once Upon The Sea Of Blissful 'Awareness.mp3"' > > > oggdec "07 - Once Upon The Sea Of Blissful Awareness.ogg" -o - | lame > - > > > "07 > > > - Once Upon The Sea Of Blissful Awareness.mp3" > > > + oggdec '"07' - Once Upon The Sea Of Blissful 'Awareness.ogg"' -o - > '|' > > > lame - '"07' - Once Upon The Sea Of Blissful 'Awareness.mp3"' > > > OggDec 1.0.1 > > > ERROR: Can only specify one input file if output filename is specified > > > > > > Se eu pego a saida do meu 'echo' e colo no terminal, ele executa > > > corretamente. Exemplo: > > > oggdec "07 - Once Upon The Sea Of Blissful Awareness.ogg" -o - | lame > - > > > "07 > > > - Once Upon The Sea Of Blissful Awareness.mp3" > > > > > > Só que dentro do script, ele não tá encarando assim. Já tentei > > > _escapar_ com > > > aspas, mas não tá funcionando. Alguém quem alguma sugestão? > > > > > > agradeço antecipadamente (pra não encher a lista com msgs de > > > agradecimento) > > > > > > -- > > > Mauricio B. C. Vieira > > > http://mauriciovieira.net > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > -- > > Christian Andreas Miniero Casza > > Administrador de Sistemas > > [EMAIL PROTECTED] <miniero%40aunit.com.br> > > [EMAIL PROTECTED] <xpto%40aunit.com.br> > > +55 11 8173-7882 > > +55 11 5643 7846 > > > > > > > > ---------------------------------------------------------- > > Esta lista não admite a abordagem de outras liguagens de programação, > como perl, C etc. Quem insistir em não seguir esta regra será moderado sem > prévio aviso. > > ---------------------------------------------------------- > > Sair da lista: [EMAIL > > PROTECTED]<shell-script-unsubscribe%40yahoogrupos.com.br> > > ---------------------------------------------------------- > > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > > ---------------------------------------------------------- > > Servidor Newsgroup da lista: news.gmane.org > > Grupo: gmane.org.user-groups.programming.shell.brazil > > > > > > Links do Yahoo! Grupos > > > > > > > > > -- Mauricio B. C. Vieira http://mauriciovieira.net [As partes desta mensagem que não continham texto foram removidas]