Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

meu script está com erro nao encontrei onde

#!/bin/bash

cd ~/Downloads/apache-log
regex="\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"

if [[ $1 =~ $regex ]]
then
    cat apache.log | grep $1
    if [ $? -ne 0 ]
    then
<------>echo "o endereco IP procurado nao esta presente no arquivo"
    fi
else
    echo "formato nao e valido"
fi

tá dando esse erro de saída:

─$ sh ./filtrando-resultado-apache.sh 47.86.228.66  
./filtrando-resultado-apache.sh: 6: [[: not found
formato nao e valido
1 resposta
solução!

O erro está sendo gerado porque você está tentando executar o script com o comando sh. Embora o script esteja escrito em Bash, ao executá-lo com sh, você pode estar usando outro shell que não oferece suporte completo para a sintaxe Bash.

Para corrigir esse problema, você pode seguir uma das seguintes abordagens:

  1. Usar Bash para Executar o Script: Em vez de usar sh, execute o script diretamente com o Bash. No terminal, execute o seguinte comando:

    chmod +x filtrando-resultado-apache.sh  # Dê permissão de execução ao script (caso ainda não tenha)
    ./filtrando-resultado-apache.sh 47.86.228.66
    

    Certifique-se de que o script tenha permissão de execução (chmod +x) antes de tentar executá-lo dessa maneira.

  2. Modificar o Shebang: No início do seu script, você pode especificar o interpretador a ser usado com o shebang #!/bin/bash. Certifique-se de que esta linha esteja presente no topo do script. Depois, você pode executar o script diretamente, como no primeiro método.

Após aplicar uma dessas abordagens, você deve conseguir executar o script sem encontrar o erro mencionado. Certifique-se de que o script tenha permissões de execução corretas usando o comando chmod +x se necessário.

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