Mesmo forçando um erro no meu código (colocando diretório inválido), está me retornando o código "0", e exibindo a msg de "Conversao realizada com sucesso". O arquivo é criado, é inserida a mensagem de erro mas retorna como "Conversao realizada com sucesso". Se eu forço um erro diferente de diretório inválido, como por exemplo: "local imagem_sem_extensao= $(ls $imagem "), espaço após o "=" , ele ainda retorna 0, porém, entra no else, exibindo a msg de "Houve uma falha no processo".
#!/bin/bash
converte_imagem(){
cd ~/Downloads/imagens-livrosd
if [ ! -d png ]
then
mkdir png
fi
for imagem in *.jpg
do
local imagem_sem_extensao=$(ls $imagem | awk -F. '{ print $1 }')
convert $imagem_sem_extensao.jpg png/$imagem_sem_extensao.png
done
}
printf "$? \n" # Coloquei esse trecho apenas para inserir a saída. Mesmo tirando esse trecho, ocorre erro na saída, retornando 0.
converte_imagem 2>Erros_conversao.txt
if [ $? -eq 0 ]
then
echo "Conversao realizada com sucesso"
else
echo "Houve uma falha no processo"
fi