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

Meus script apresentando erro quando uso o delimitador

Alguém consegue ajudar? Segue como está o script no momento:

#!/bin/bash

resposta_http=$(curl --write-out %{http_code} --silent --output /dev/null http://localhost) if [ $resposta_http -ne 200 ] # -ne verifica se o conteudo resposta e diferente de 200 e -eq se e igual then mail -s "Mesnagem teste de monitoramento - Problema no servidor" marfecarater@gmail.com<<del Mensagem simulacao teste - Houve um erro no servidor web e perdeu o acesso para usuarios. del systemctl restart apache2.service fi

print do retorno do erro

2 respostas
solução!

Olá Marcelo!

Parece que o problema está relacionado ao uso do here-document no seu script. O erro indica que o delimitador especificado (no caso, del) não foi encontrado como esperado pelo shell.

Um ponto importante ao usar here-documents é garantir que o delimitador utilizado para encerrar o bloco de texto seja colocado no início de uma nova linha, sem espaços ou tabs antes ou depois dele. No seu caso, o delimitador del deve estar sozinho em uma linha, sem nenhum espaço antes ou depois.

Além disso, verifique se, ao editar o script, não foram inseridos caracteres invisíveis ou espaços extras. Isso pode acontecer dependendo do editor de texto utilizado.

Aqui está uma sugestão de como corrigir o seu script:

#!/bin/bash

resposta_http=$(curl --write-out %{http_code} --silent --output /dev/null http://localhost)
if [ $resposta_http -ne 200 ] # -ne verifica se o conteudo resposta e diferente de 200 e -eq se e igual
then
        mail -s "Mensagem teste de monitoramento - Problema no servidor" marfecarater@gmail.com<<del
Mensagem simulacao teste - Houve um erro no servidor web e perdeu o acesso para usuarios.
del
        systemctl restart apache2.service
fi

Certifique-se de que o del final esteja alinhado à esquerda, sem espaços ou tabs antes dele. Se ainda estiver enfrentando problemas, tente usar um delimitador mais único, como END_MESSAGE ou algo similar, para evitar conflitos com palavras que possam aparecer no texto.

Espero ter ajudado e bons estudos!

Ajudou bastante Renan. Muito obrigado.