Como verificar se uma matriz de bash contém um valor

Como verificar se uma matriz de bash contém um valor

Bash é um shell Unix amplamente usado que fornece um conjunto de ferramentas poderosas para administração e automação do sistema. Uma das estruturas de programação mais usadas no script de bash é uma matriz, que permite armazenar vários valores em uma única variável, este artigo, discutirá como verificar se uma matriz de bash contém um valor específico.

Como verificar se a matriz Bash contém um valor

Aqui estão três métodos distintos que você pode usar para determinar se uma matriz no Bash inclui um valor:

    • Usando um loop
    • Usando o comando Grep
    • Usando a sintaxe $ Array [@]/padrony/substituição

Método 1: Usando um loop

Uma maneira de verificar se uma matriz de bash contém um valor é iterar sobre a matriz usando um loop for que compara todos os elementos com o valor que você deseja encontrar, aqui está um exemplo:

#!/BIN/BASH
carros = ("BMW" "Volvo" "Kia")
car_to_find = "kia"
para carro em "$ cars [@]"
fazer
se ["$ car" == "$ car_to_find"]
então
eco "encontrado $ car!"
quebrar
fi
feito


Aqui eu tenho uma variedade de marcas de carros e quero encontrar a marca "Kia", então eu itero sobre a matriz usando um loop para loop e comparar cada marca de carro com a marca que quero encontrar. Se encontrarmos uma correspondência, imprimimos uma mensagem e saímos do loop usando a instrução Break.

Método 2: Usando o comando Grep

Usando o comando Grep para procurar o valor na matriz é outra técnica para determinar se uma matriz Bash tem um valor, aqui está uma ilustração:

#!/BIN/BASH
carros = ("BMW" "Volvo" "Kia")
car_to_find = "kia"
Se echo "$ cars [@]" | grep -qw "$ car_to_find"; então
eco "encontrado $ car_to_find!"
outro
eco "$ car_to_find não encontrado."
fi


Aqui, usamos o comando Echo para imprimir a matriz para a saída padrão e tubá -lo para Grep. A opção -q diz a Grep para ficar quieto e apenas retorna um código de status indicando se o padrão foi encontrado ou não. A opção -w diz a Grep para corresponder ao padrão como uma palavra inteira. Se Grep encontrar o padrão, a instrução IF imprime uma mensagem indicando que o valor foi encontrado.

Método 3: Usando $ Array [@]/padrão/substituição sintaxe

Uma terceira maneira de verificar se uma matriz Bash contém um valor é usar a sintaxe $ Array [@]/padrony/substituição para substituir o valor que deseja encontrar com uma string diferente e, em seguida, compare a matriz resultante com o original variedade. Aqui está um exemplo:

#!/BIN/BASH
carros = ("BMW" "Volvo" "Kia")
car_to_find = "kia"
se [["$ cars [@]/$ car_to_find/" != "$ cars [@]"]]; então
eco "encontrado $ car_to_find!"
outro
eco "$ car_to_find não encontrado."
fi


Aqui, usamos a sintaxe $ Array [@]/padrão/substituição para remover o valor que queremos encontrar da matriz e se a matriz resultante for diferente da matriz original, significa que o valor foi encontrado.

Conclusão

Discutimos três métodos diferentes para verificar se uma matriz de bash contém um valor que é: usando um loop, usando o comando grep e usando $ Array [@]/padrony/replacement sintaxe. Ao usar essas técnicas, você pode pesquisar com eficiência por meio de matrizes e executar as operações necessárias nos valores que encontra.