Cómo verificar si una matriz de bash contiene un valor

Cómo verificar si una matriz de bash contiene un valor

Bash es un shell Unix ampliamente utilizado que proporciona un conjunto de herramientas potentes para la administración y automatización del sistema. Una de las estructuras de programación más utilizadas en las secuencias de comandos bash es una matriz, que le permite almacenar múltiples valores en una sola variable, este artículo discutirá cómo verificar si una matriz de bash contiene un valor específico.

Cómo verificar si la matriz de bash contiene un valor

Aquí hay tres métodos distintos que puede usar para determinar si una matriz en Bash incluye un valor:

    • Usando un bucle
    • Usando el comando GREP
    • Usando la sintaxis $ array [@]/patrón/reemplazo

Método 1: usando un bucle

Una forma de verificar si una matriz de bash contiene un valor es iterar sobre la matriz usando un bucle for que compara cada elemento con el valor que desea encontrar, aquí hay un ejemplo:

#!/bin/bash
autos = ("BMW" "Volvo" "Kia")
car_to_find = "kia"
para coche en "$ cars [@]"
hacer
if ["$ car" == "$ car_to_find"]
entonces
echo "encontrado $ coche!"
romper
FI
hecho


Aquí tengo una variedad de marcas de autos y quiero encontrar la marca "KIA", así que itero sobre la matriz usando un bucle for For y comparar cada marca de automóvil con la marca que quiero encontrar. Si encontramos una coincidencia, imprimimos un mensaje y salimos del bucle usando la instrucción Break.

Método 2: Uso del comando GREP

Usar el comando GREP para buscar el valor en la matriz es otra técnica para determinar si una matriz bash tiene un valor, aquí hay una ilustración:

#!/bin/bash
autos = ("BMW" "Volvo" "Kia")
car_to_find = "kia"
if echo "$ autos [@]" | Grep -qw "$ car_to_find"; entonces
echo "encontrado $ car_to_find!"
demás
echo "$ car_to_find no encontrado."
FI


Aquí, utilizamos el comando echo para imprimir la matriz en la salida estándar y la votamos a Grep. La opción -q le dice a GREP que esté tranquilo y solo devuelva un código de estado que indique si el patrón se encontró o no. La opción -w le dice a GREP que coincida con el patrón como una palabra completa. Si GREP encuentra el patrón, la instrucción IF imprime un mensaje que indica que se encontró el valor.

Método 3: Uso de $ array [@]/patrón/reemplazo sintaxis

Una tercera forma de verificar si una matriz de bash contiene un valor es usar la sintaxis $ matriz [@]/patrón/reemplazo para reemplazar el valor que desea encontrar con una cadena diferente, y luego comparar la matriz resultante con la original formación. Aquí hay un ejemplo:

#!/bin/bash
autos = ("BMW" "Volvo" "Kia")
car_to_find = "kia"
if [["$ cars [@]/$ car_to_find/" != "$ cars [@]"]]; entonces
echo "encontrado $ car_to_find!"
demás
echo "$ car_to_find no encontrado."
FI


Aquí, usamos la sintaxis $ matriz [@]/patrón/reemplazo para eliminar el valor que queremos encontrar de la matriz y si la matriz resultante es diferente de la matriz original, significa que el valor se encontró.

Conclusión

Hemos discutido tres métodos diferentes para verificar si una matriz de bash contiene un valor que está: usando un bucle, usando el comando GREP y usando $ array [@]/patrón/reemplazo sintaxis. Al usar estas técnicas, puede buscar eficientemente a través de matrices de bash y realizar las operaciones necesarias en los valores que encuentra.