1
resposta

Verificação de determinado elemento dentro de um array no bash

Não sei se é a melhor solução, mas encontrei essa forma de verificar se determinado elemento pertence ao array que criei para simplificar toda a estrutura aninhada de condições da aula. Segue o script para validação:

#!/bin/bash

HTTP_VERBS=(GET POST PUT PATCH DELETE)
PATH_DIR=~/Downloads

raise_not_found_request_message(){
 if [ $? -ne 0 ]
 then
  echo "Not found any requests to $1 informed"
 fi
}

filter_http_verb(){
 local upper_params=$(echo $1 | tr '[:lower:]' '[:upper:]')

 if [[ " ${HTTP_VERBS[*]} " =~ " ${upper_params} " ]]
 then
  cat $PATH_DIR/apache.log | grep $upper_params
  raise_not_found_request_message $upper_params
 else
  echo "Please, pass an correct verb HTTP"
 fi
}

filter_http_verb $1
1 resposta

Olá, Renan. Tudo bem?

Essa forma de checar se um elemento pertence a um array é correta sim. Por debaixo dos panos ela faz um loop pelos elementos do array, então não é mais eficiente, mas é mais legível para quem está tentando entender o código.

Parabéns pela solução e bons estudos!