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

Erro na execução do código

Boa tarde,

Alguém poderia me ajudar com o erro do código?

Código => https://prnt.sc/i5iihd Erro => https://prnt.sc/i5iiy7

Muito obrigado

6 respostas

Olá Guilherme,

Pelo que pude verificar, o problema seria no if. É necessário ter um espaço entre o if e a informação dentro dos colchetes, exemplo:

if [(espaço) informação (espaço)]

Abs

Rafael, realmente faltavam os espaços, porém corrgi isso, mas o código ainda apresenta o mesmo erro. O que eu posso fazer?

Olá Guilherme,

Poderia por favor postar o código aqui para que eu possa analisar em mais detalhes?

Sim, sem problemas, tive problemas para mandar o código diretamente antes pois estou usando uma máquina virtual. Segue o código

#!/bin/bash

converte_imagem(){
    cd ~/Downloads/imagens-livros

    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
}

converte_imagem
if[ $? -eq 0] then
    echo "Conversão realizada com sucesso"
else
    echo "Houve um erro na conversão"
fi
solução!

Olá Guilherme, tudo bem?

Estive analisando seu código, vou colocar abaixo os pontos:

  • Ao colocarmos o then na mesma linha do if, precisamos colocar ; após o if para que a sintaxe fique correta
  • Na linha abaixo:
 local imagem_sem_extensao = $(ls imagem | awk -F. '{ print $1 }')

Não podemos ter espaços entre o =, a variável e o conteúdo, do lado direito da igualdade devemos ter o conteúdo da variável imagem $imagem

  • Na linha abaixo:
if[ $? -eq 0] then

Temos aquela mesma questão de colocar o ;depois do if e precisamos colocar um espaço entre o 0 e o colchete. Estou colocando abaixo o código com as correções:

#!/bin/bash

converte_imagem(){
    cd ~/Downloads/imagens-livros

    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
}

converte_imagem
if [ $? -eq 0 ]; then
    echo "Conversão realizada com sucesso"
else
    echo "Houve um erro na conversão"
fi

Abs

Muito obrigado Rafael;