Journal Script bash de base

Posté par  (site web personnel) .
Étiquettes : aucune
0
2
juin
2004
C'est basique comme question mais je me la pose !

Lorsque je fais

for i in 1 2 3 ;
do
echo $i;
done

Dans ce cas, ça m'affiche 1 2 3. Comment faire pour afficher un intervalle de 1 à 10 par exemple ?
Ne pas me répondre

for i in 1 2 3 4 5 6 7 8 9 10 ; do echo $i ; done

sinon je demande l'intervalle [1-1000] ;-)
  • # seq

    Posté par  . Évalué à 5.

    man seq
  • # Ah ben pour 1000

    Posté par  . Évalué à 3.

    A ben pour 1000 un truc comme ca :

    for i in 0 1 2 3 4 5 6 7 8 9;
    for j in 0 1 2 3 4 5 6 7 8 9
    for k in 0 1 2 3 4 5 6 7 8 9
    echo $i * 100 + $j * 10 + $k ;
    done:
    done;
    done;

    enfin quelque chose dans le style
    ;-)

    enfin, je doit dire que je suis tout de même interresser par la réponse ^_^
  • # 2 réponses

    Posté par  (site web personnel) . Évalué à 5.

    for (( i=1 ; i <= 1000; i++ )); do echo $i; done

    Sinon "man bash" c'est pas mal non plus...
    • [^] # Re: 2 réponses

      Posté par  . Évalué à 4.

      le man bash est une horreur

      par contre http://www.tldp.org/LDP/abs/html/(...) c'est du bonheur
    • [^] # bash <-- ksh <-- sh

      Posté par  . Évalué à 2.

      Raccourci sommaire :
      Cette syntaxe héritée du C est l'un des gros apports de bash par rapport au ksh, lui même étendu du sh avec les fonctions et le typage (faible) de variable...

      Une question cependant, le "bash" est-il full-POSIX comme le ksh ?
  • # autre méthode :

    Posté par  . Évalué à 2.

    Autre méthode :
    for i in `seq 1 1000`; do
       echo $i;
    done
    
    • [^] # Re: autre méthode :

      Posté par  . Évalué à 1.

      heu pas très utile le for là :-)

      dans le même genre tu as
      cat file | grep xxxx
      • [^] # Re: autre méthode :

        Posté par  . Évalué à 4.

        Oui enfin à la base, c'était la question. Après, je pense que le but était de remplacer echo $i par qqchose de plus compliqué.

        Sinon, au lieu d'utiliser ``, il est préférable d'utiliser $(). Cela marche récursivement, contrairement aux ``. La solution devient :

        for i in $(seq 1000); do
        echo $i
        done
  • # Merci

    Posté par  (site web personnel) . Évalué à 3.

    Merci à tous pour les réponses.

    Pour le man bash ... merci j'avais fait mais j'ai pas trouvé. Et pour le man seq, c'est ce que je cherche ... mais comment penser à seq (ok qd on le sait c'est plus facile) ?

    Ciao.
    • [^] # Re: Merci

      Posté par  (site web personnel) . Évalué à 2.

      Dans ce cas précis je pense pas que tu l'aurais trouvé mais sinon apropos(1) est ton ami (et sous Debian apt-cache search).

      pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.