Bash : Énumération, syntaxe éronnée: {1.."${compteur}"}

Bonjour,
je souhaite utiliser une énumération du type
« de 1 à $compteur», mais ce qui marche avec 2 entiers,
for i in {1..6} ; do echo "$i" ; done
ne marche pas avec une variable, selon la syntaxe suivante:
for i in {1.."${compteur}"} ; do echo "$i" ; done

Dans ce cas, la variable « i » contient la formule complète
(avec ou sans guillemets, pas de différence).

Existe-t-il une syntaxe simple pour réaliser une telle énumération ?

PS:
J’ai résolu mon problème actuel en énumérant les indices d’un tableau utilisé dans mon script,
for i in ={!tableau[*]} ; do ... ; done
mais sans répondre à la question.

1 J'aime

Bonjour,

Normal : Bash Reference Manual

Brace expansion is performed before any other expansions,…

Syntaxes possibles :

for ((i=1;i<=$compteur;i++)) ; do echo "$i" ; done
for i in $(seq 1 $compteur) ; do echo "$i" ; done
i=1; while (( $i <= $compteur )) ; do echo "$i" ; (( i++ )) ; done

etc.

3 J'aime

@Bruno1
Super! rapide, limpide
grand merci

1 J'aime

La méthode avec seq a deux gros avantages à mon avis :

  • elle est plus facilement lisible que les deux autres
  • elle n’est pas spécifique à bash
1 J'aime