1
resposta

Falha de segmentação (imagem do núcleo gravada)

Quando roto o comando ele me retorna esse erro.

*Falha de segmentação (imagem do núcleo gravada) *

Veja meu codigo **

#!/bin/bash

converte_imagen(){ local caminho_imagen=$1 local imagen_sem_extensao=$(ls $caminho_imagen | awk -F. '{ print $1 }') convert $imagen_sem_extensao.jpg $imagen_sem_extensao.png }

varrer_diretorio() {

cd $1
for arquivo in *
do
    local caminho_arquivo=$(find ~/desenvolvimento/shell-script/imagens-novos-livros -name '$arquivo')
    if [ -d $caminho_arquivo ]
    then
        varrer_diretorio $caminho_arquivo
    else
        converte_imagen $caminho_arquivo
    fi
done

}

varrer_diretorio ~/desenvolvimento/shell-script/imagens-novos-livros if[ $? -eq 0 ] then echo "Conversao realizada com sucesso" else echo "Houve um problema na conversao" fi **

1 resposta

Marco Antonio, boa noite.

Não consegui reproduzir o mesmo erro que apresentou pra vc, mas fiz alguns ajustes no seu script pra ele funcionar corretamente.

Nome do Script: converte.bash Privilégio: chmod 775 converte.bash

#!/bin/bash

# Funcao de conversao de arquivos
converte_imagem(){

    # Recebe o parametro 1 na variavel caminho_imagem
    local caminho_imagem=$1

    # A variavel imagem_sem_extensao recebe o caminho completo do arquivo sem a extensao
    local imagem_sem_extensao=$(echo $caminho_imagem | awk -F. '{ print $1 }')

    echo "Convertendo o arquivo: ${imagem_sem_extensao}.jpg para ${imagem_sem_extensao}.png"
    convert ${imagem_sem_extensao}.jpg ${imagem_sem_extensao}.png

    if [ $? -eq 0 ]; then 
       echo "Conversao realizada com sucesso" 
    else
      echo "Houve um problema na conversao" 
    fi

    echo ""
}

varrer_diretorio() {

  echo "Acessando o diretorio: ${1}"

  cd $1

  echo ""

  # itera entre todos os arquivos existentes no diretorio com a extensao .jpg
  for arquivo in *.jpg
  do

    echo "Processando o arquivo: ${1}/${arquivo}"

    # Se o arquivo existe, chama a funcao converte_imagem passando o caminho completo do arquivo como parametro 1
    if [ -f ${arquivo} ]; then

       # Chamada da funcao converte_imagem passando o caminho completo do arquivo como parametro 1
       converte_imagem "${1}/${arquivo}"

    fi

  done
  echo "################################################################################################################################################################"
}

echo "################################################################################################################################################################"
echo "Inicio do Processo"
echo "################################################################################################################################################################"

echo ""

# Chamada da funcao varrer_diretorio
varrer_diretorio ~/desenvolvimento/shell-script/imagens-novos-livros

Espero que te ajude a evoluir o conhecimento em Shell Script.

Link com comandos Shell Script: https://aurelio.net/shell/canivete/pdf/canivete-shell.pdf

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