Merci pour la question, et merci pour les réponses. Je cherchais aussi (en fait, je recherchais "seq" dont j'avais perdu le nom). j'avais cherché dans man bash mais sans résultat. Apparament, seq est un programme à part.
Tout ceci pour en venir à la question suivante :
Quand on programme en bash, il n'y a-t-il pas un moyen de faire une boucle for comme par exemple en c sans utiliser de programmes externes ?
Un truc qui donnerai le même résultat que for i in `seq 5` ; do echo "instruction $i" ; done
Par hasard :
$ for ((i = 0; i < 5; i++)); do echo $i; done
0
1
2
3
4
extrait du man:
[...]
for (( expr1 ; expr2 ; expr3 )) ; do list ; done
First, the arithmetic expression expr1 is evaluated according to the rules described below under ARITHMETIC EVALUATION. The arithmetic expression
expr2 is then evaluated repeatedly until it evaluates to zero. Each time expr2 evaluates to a non-zero value, list is executed and the arithmetic
expression expr3 is evaluated. If any expression is omitted, it behaves as if it evaluates to 1. The return value is the exit status of the last
command in list that is executed, or false if any of the expressions is invalid.
[...]
je cherchais justement à créer rapidement une centaine de répertoires de 1000 à 1100
et après avoir lu votre post, et ensuite le "seq --help" j'ai fait :
$ mkdir `seq 1000 1100`
et hop ! ça marche !
merci l'ami
ah c'est bien Linux et Linuxfr.org, on en apprend tous les jours :-)
on devrait poster plus souvent des journeaux sur les commandes géniales qu'on a sur Linux, bash et autres seq/grep
Je suis d'accord que ces journaux sont intéressant (je recherchais d'ailleurs cette commande), mais je pense qu'il serait mieux dans la rubrique Astuces.
Cependant, le problème de cette rubrique est à mon gout, qu'elle est trop « fouillit ». En effet. S'il y avait un vrai classement par rubrique, je pense les contributions seraient plus nombreuses car plus accessibles et plus regardées. C'est vraiment dommage, car je pense que cette rubrique pourrait avoir beaucoup plus de succès.
# Re: Mais quelle est donc cette commande ?
Posté par jmfayard . Évalué à 1.
[^] # Re: Mais quelle est donc cette commande ?
Posté par Flyounet (site web personnel) . Évalué à 1.
[^] # Re: Mais quelle est donc cette commande ?
Posté par jmfayard . Évalué à 2.
[^] # Re: Mais quelle est donc cette commande ?
Posté par Flyounet (site web personnel) . Évalué à 1.
Pas grave, soluce :
awk 'BEGIN{for(j=1; j-1!=5; j++) print j;}'
[^] # Re: Mais quelle est donc cette commande ?
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
i=1; while [ $i -lt 6 ] ; do echo $i; i=$((i+1)); done
ou alors celle la :)
for i in 1 2 3 4 5; do echo $i; done
[^] # Re: Mais quelle est donc cette commande ?
Posté par MrTout (site web personnel) . Évalué à 1.
ruby -e "(1..5).each{|i| puts i }"
:)
[^] # Re: Mais quelle est donc cette commande ?
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
seq 5
[^] # Re: Mais quelle est donc cette commande ?
Posté par seginus . Évalué à 1.
Tout ceci pour en venir à la question suivante :
Quand on programme en bash, il n'y a-t-il pas un moyen de faire une boucle for comme par exemple en c sans utiliser de programmes externes ?
Un truc qui donnerai le même résultat que for i in `seq 5` ; do echo "instruction $i" ; done
[^] # Re: Mais quelle est donc cette commande ?
Posté par the_freeman . Évalué à 1.
$ for ((i = 0; i < 5; i++)); do echo $i; done
0
1
2
3
4
extrait du man:
[...]
for (( expr1 ; expr2 ; expr3 )) ; do list ; done
First, the arithmetic expression expr1 is evaluated according to the rules described below under ARITHMETIC EVALUATION. The arithmetic expression
expr2 is then evaluated repeatedly until it evaluates to zero. Each time expr2 evaluates to a non-zero value, list is executed and the arithmetic
expression expr3 is evaluated. If any expression is omitted, it behaves as if it evaluates to 1. The return value is the exit status of the last
command in list that is executed, or false if any of the expressions is invalid.
[...]
[^] # Re: Mais quelle est donc cette commande ?
Posté par Flyounet (site web personnel) . Évalué à 1.
[^] # Re: Mais quelle est donc cette commande ?
Posté par Jack ze . Évalué à 1.
je cherchais justement à créer rapidement une centaine de répertoires de 1000 à 1100
et après avoir lu votre post, et ensuite le "seq --help" j'ai fait :
$ mkdir `seq 1000 1100`
et hop ! ça marche !
merci l'ami
ah c'est bien Linux et Linuxfr.org, on en apprend tous les jours :-)
on devrait poster plus souvent des journeaux sur les commandes géniales qu'on a sur Linux, bash et autres seq/grep
JlF
[^] # Re: Mais quelle est donc cette commande ?
Posté par seginus . Évalué à 1.
Cependant, le problème de cette rubrique est à mon gout, qu'elle est trop « fouillit ». En effet. S'il y avait un vrai classement par rubrique, je pense les contributions seraient plus nombreuses car plus accessibles et plus regardées. C'est vraiment dommage, car je pense que cette rubrique pourrait avoir beaucoup plus de succès.
# Re: Mais quelle est donc cette commande ?
Posté par Laurent Mazet (site web personnel) . Évalué à 1.
[^] # Re: Mais quelle est donc cette commande ?
Posté par Vivi (site web personnel) . Évalué à 1.
i=1 ; while (( $i <= 5 )) ; do echo $i ; i=$(($i+1)) ; done
[^] # Re: Mais quelle est donc cette commande ?
Posté par Laurent Mazet (site web personnel) . Évalué à 1.
[^] # Re: Mais quelle est donc cette commande ?
Posté par Flyounet (site web personnel) . Évalué à 1.
[^] # Re: Mais quelle est donc cette commande ?
Posté par Vivi (site web personnel) . Évalué à 2.
certes.
for (( i=1 ; i<6 ; i++ )) ; do echo $i; done
# Re: Mais quelle est donc cette commande ?
Posté par pasBill pasGates . Évalué à 1.
Ok, je -->[]
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.