|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 166 ![]() |
Bonjour.
Je veux boucler sur une suite de valeurs consécutives et cette syntaxe me semble être la plus appropriée. Je connais aussi la syntaxe for((e1;e2;e3)), mais elle est plus verbeuse et trop "overkilled" pour ce besoin. Mais sauf erreur de ma part, seuls les nombres entiers constants semblent être acceptés avec cette syntaxe. J'ai essayé ceci : for x in {2..`$numFiles`} et for x in {2..$($numFiles)} Ai je fait une erreur ou seuls les entiers constants sont autorisés ? Si seuls les entiers constants sont autorisés je sais utiliser Seq, mais c'est un peu plus verbeux. |
|
|
01
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
La substitution de commande ne sert à rien ici. Effectivement, une expression de série (Développement des accolades) ne peut comporter que des entiers constants, parce que "Le développement des accolades est effectué avant tout autre développement[...]" cependant, il est possible d'utiliser des variables grâce à eval, mais bon ![]() dans ce cas là, en BASH, le mieux reste for ((e1;e2;e3)) |
|
|
20
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 166 ![]() |
Ok, merci.
Par curiosité c'est quoi au juste la syntaxe d'eval, j'ai essayé ceci : Code :
|
||
|
|
01
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
Ce que j'en sais est beaucoup plus moche : Code :
for item in $(eval echo {$debut..$fin}); do...;done |
|
|
10
|
|
|
#5 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 166 ![]() |
Ok, merci.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com