Vérifier si la durée de la matrice est égal à une variable bash

Je veux vérifier si la longueur d'un bash de la matrice est égal à un bash variable (int) ou pas. Mon code ressemble à ceci:

if [ "${#selected_columns}" -eq "${number_of_columns}" ]; then
    echo "They are equal!"
fi

Cela renvoie faux, puisque l'écho de la déclaration est de ne jamais exécuter. Cependant, cela produit 4 pour les deux d'entre eux:

echo "${#selected_columns[@]}"
echo "${number_of_columns}"

Quel est le problème ici? Il a quelque chose à voir avec la chaîne de contre int?

N'êtes-vous pas manquant [@] dans le premier exemple?
if [ "${#selected_columns[@]}" -eq "${number_of_columns}" ]; then
Ouais, juste une bête faute de frappe. Merci!

OriginalL'auteur Krøllebølle | 2012-10-27