|
From: | Dojai |
Subject: | Re: [shell-script] fim de um loop devido ao exit do avconv |
Date: | Thu, 21 Nov 2013 17:05:52 -0200 |
User-agent: | KMail/4.8.5 (Linux/3.2.0-56-generic-pae; KDE/4.8.5; i686; ; ) |
Ficou assim:
#/bin/bash IFS=" " # evita problemas com nomes de arquivos contendo brancos (separador deve ser <ENTER>) while read ARQ; do NOVOARQ=${ARQ/%.mp4/.avi} # gera o novo nome do arquivo [ -f $NOVOARQ ] && { echo "'$NOVOARQ' já existe. Não será feita a conversão." continue } echo "Convertendo de '$ARQ' para '$NOVOARQ'" avconv -i "$ARQ" "$NOVOARQ" done < <(ls *.mp4) exit
Fiz apenas pequenas modificações à sugestão do mestre Julio. Estou estudando os links sugeridos e feito isso irei estudar e testar a segunda forma sugerida.
Em que situações o exit (com erro) de um programa afeta um loop? Pode ocorrer algum outro erro durante a conversão e o loop seria finalizado, sendo que o que se deseja é que continuasse com a conversão dos próximos arquivos.
Thanks, Dojai
Em qui 21 nov 2013 17:58:32 você escreveu:
Não testei, mas é provável que o script abaixo funcione. #/bin/bash IFS=" " # evita problemas com nomes de arquivos contendo brancos while read ARQ; do NOVOARQ=${$ARQ/.mp4/.avi} # gera o novo nome do arquivo [ -f $NOVOARQ ] && { echo $NOVOARQ já existe continue } echo "Obtendo o arquivo $NOVOARQ avconv -i "$ARQ" "$NOVOARQ" done < <(ls *.mp4) exit Outra forma interessante seria: Mp4=$(ls *.mp4) Avi=$(cut -f2 -d"." <<< "$Mp4" | xargs -i echo {}.avi) paste <(echo "$Mp4") <(echo "$Avi) | xargs -L1 avconv -i Me diga se a última funfou. Se sim, eu explico, mas antes veja isso e isso. Abcs, Julio A partir de 02/12 estarei ministrando um curso completo de Shell no Rio de Janeiro. @juliobash Facebook? Neither that the cow cough... ;)
Em 21 de novembro de 2013 17:12, Dojai <address@hidden> escreveu:
Pessoal,
-- Eduardo Jaime Quiros Batres, MS Analista de Tecnologia da Informação Diretoria de Tecnologia da Informação Universidade Federal de Viçosa (31) 3899-3030 address@hidden |
[Prev in Thread] | Current Thread | [Next in Thread] |