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

Erro: Não encontra arquivo

root@DESKTOP-83379H9:~/scripts# ls /mnt/c/Users/emersom.pereira/Downloads/imagens-novos-livros
amazon_aws.jpg  backend  business  frontend  mobile  windows_server.jpg
root@DESKTOP-83379H9:~/scripts# cd /root/scripts/
root@DESKTOP-83379H9:~/scripts# bash conversao-diferentes-diretorios.sh
convert-im6.q16: unable to open image `/mnt/c/Users/emersom.jpg': No such file or directory @ error/blob.c/OpenBlob/2874.
convert-im6.q16: no images defined `/mnt/c/Users/emersom.png' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `/mnt/c/Users/emersom.jpg': No such file or directory @ error/blob.c/OpenBlob/2874.
convert-im6.q16: no images defined `/mnt/c/Users/emersom.png' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `/mnt/c/Users/emersom.jpg': No such file or directory @ error/blob.c/OpenBlob/2874.
#!/bin/bash


converte_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 /mnt/c/Users/emersom.pereira/Downloads/imagens-novos-livros -name $arquivo)

        if [ -d $caminho_arquivo ]
        then
                varrer_diretorio $caminho_arquivo
        else
                converte_imagem $caminho_arquivo
        fi
done
}

varrer_diretorio /mnt/c/Users/emersom.pereira/Downloads/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
solução!

Oi Emerson o problema está em

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

Quando vc usa o " . " com separado para extrair a extensão, mas na verdade vc etá separando o nome da diretório "emersom.pereira"

No seu caso poderia resolver assim:

local imagem_sem_extensao=$(ls $caminho_imagem | awk -F. '{ print $1"."$2 }')

Obrigado pela resposta!

Entendi o motivo do erro e a correção funcionou. Só não entendi o porquê eu colocar o "." dentro do print solucionou.