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.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.