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

**URL:** <https://www.debian-fr.org/t/bash-enumeration-syntaxe-eronnee-1-compteur/85562>\
**Category:** Programmation\
**Created:** [Octobre 31, 2021, 7:58 UTC](https://www.debian-fr.org/t/bash-enumeration-syntaxe-eronnee-1-compteur/85562 "2021-10-31T07:58:51Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Octobre 31, 2021, 7:58 UTC](https://www.debian-fr.org/t/bash-enumeration-syntaxe-eronnee-1-compteur/85562/1 "2021-10-31T07:58:51Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![anon70622873](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/278dde/32.png) [@anon70622873](https://www.debian-fr.org/u/anon70622873)\
**Post date:** [Octobre 31, 2021, 9:13 UTC](https://www.debian-fr.org/t/bash-enumeration-syntaxe-eronnee-1-compteur/85562/2 "2021-10-31T09:13:19Z")

</div>

Bonjour,

> [@josephtux](#):
>
> ne marche pas avec une variable,

Normal : [Bash Reference Manual](https://www.gnu.org/software/bash/manual/bash.html#Brace-Expansion)

> Brace expansion is performed before any other expansions,…

Syntaxes possibles :

```auto
for ((i=1;i<=$compteur;i++)) ; do echo "$i" ; done

```

```auto
for i in $(seq 1 $compteur) ; do echo "$i" ; done

```

```auto
i=1; while (( $i <= $compteur )) ; do echo "$i" ; (( i++ )) ; done

```

etc.

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Octobre 31, 2021, 9:33 UTC](https://www.debian-fr.org/t/bash-enumeration-syntaxe-eronnee-1-compteur/85562/3 "2021-10-31T09:33:13Z")

</div>

@Bruno1  
Super! rapide, limpide  
grand merci

---

<div class="post-metadata">

**Author:** ![anon96191775](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/71c47a/32.png) [@anon96191775](https://www.debian-fr.org/u/anon96191775)\
**Post date:** [Octobre 31, 2021, 10:11 UTC](https://www.debian-fr.org/t/bash-enumeration-syntaxe-eronnee-1-compteur/85562/4 "2021-10-31T10:11:36Z")

</div>

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
