BASH – Cómo comprobar si un array de bash contiene un elemento.-

Lamentablemente no existe ninguna manera sencilla de hacerlo, pero sí que puedes utilizar la siguiente función:

function contiene() {
    local n=$#
    local value=${!n}
    for ((i=1;i < $#;i++)) {
        if [ "${!i}" == "${value}" ]; then
            echo "y"
            return 0
        fi
    }
    echo "n"
    return 1
}

Y así es como podrías utilizarlo:

# definimos un array con tres elementos
A=("one" "two" "three four")
 
# comprobar si el array contiene los elementos
if [ $(contiene "${A[@]}" "one") == "y" ]; then
    echo "contiene el elemento 'one'"
fi
 
if [ $(contiene "${A[@]}" "three") == "y" ]; then
    echo "contiene el elemento 'three'"
fi
Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *