Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Ambas as funções montadas e funcionais.

  1. Funções 'convert_imagem' e 'varrer_diretorio' montadas.
  2. Mas ainda não percebi bem o porque de usarmos o $1 quando definimos a variável. E depois quando vamos localizar o diretório.
  3. A linguagem 'awk' por sua vez será um desafio a parte. Só mesmo com prática para ir desenvolvendo.
  4. Usar o nano também é um aprendizado. Traz-me recordações de um passado distante com prompt DOS.
#!/bin/bash

<<INTRO
    Introdução ao Shell Scripting.
    Script para varrer diretórios e realizar conversão de imagens (.jpg para .png)
    Na primeira função vemos o uso da linguagem awk, remover a extensão .jpg do nome do arquivo.
    Na segunda função definimos o laço, para varredura dos diretórios.
    O teste (if) ao final verifica se o código foi executado com sucesso.
INTRO

convert_imagem(){
  local caminho_imagem=$1
  local imagem_sem_extensao=$(ls $caminho_imagem | awk -F. '{print $1 }')
  convert $imagem_sem_extensao.jpg $imagem_sem_extensao.png
}

varrer_diretorio(){
cd $1
  for arquivo in *
  do
    local caminho_arquivo=$(find ~/Transferências/imagens-novos-livros -name $arquivo)
    if [ -d $caminho_arquivo ]
    then
      varrer_diretorio $caminho_arquivo
      else
      convert_imagem $caminho_arquivo
    fi
  done
}
varrer_diretorio ~/Transferências/imagens-novos-livros
if [ $? -eq 0 ]
then
    echo "Conversão realizada com sucesso!"
else
    echo "Houve uma falha no processo de conversão."
fi
2 respostas

Muito bom Eliezer,se me permite um desafio, seria muito legal se ao executar seu programa, eu possa informar três dados: local onde as imagens estão, a extensão que elas possuem agora e a extensão para qual quero converter.

Isso deixaria seu programa ainda mais flexível.

solução!

Uou que desafio! Vou pensar nisto com carinho. Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software