Posez votre question Signaler

Boucle en bash

Moss - Dernière réponse le 17 avril 2009 à 10:39
Bonjour à tous,
Je souhaiterai faire une boucle qui incrémente une valeur puis qui me la retourne dans un echo. Ceci n'est pas très compliqué mais il faut que cette valeur s'increment de cette facon:
01
02
03
.....
.....
09
10
11
....
Je souhaite mettre un 0 quand la valeur est comprise entre 1 et 9. A partir de 10, le 0 "disparait".
Voici ce que j'ai fais:
#!/bin/bash

echo "Nombre de filesystems que vous voulez ?"
read nombre
clear
numfs=0
numfs2=0

while [ ${numfs} -lt ${nombre} ]
do
 numfs=`expr $numfs + 1`

if [ numfs2 -lt 9 ]
  then
  echo "$numfs2"
   else 
  echo "0$numfs2"
 fi


echo "
 define service{
        use                             local-service         ; Name of service template to use
        host_name                       serveur123
        service_description             Filesystemes_0${numfs}
        check_command                   check_nrpe!check_filesystemes_${numfs}
        notifications_enabled           0
        }"
done

et le résultat n'est pas celui que j'attend; soit j'ai, à la ligne service description,
Filesystemes_01
Filesystemes_02
.....
Filesystemes_010
Filesystemes_011

ou alors j'ai
Filesystemes_1
Filesystemes_2
.....
Filesystemes_10
Filesystemes_11

merci par avance de votre aide
Moss
Lire la suite 

Boucle en bash »

1 réponses
Réponse
+0
moins plus
En fait il faudrait trouver l'équivalent d'un printf("%2d",x) en C, mais en bash. Et bonne surprise c'est la fonction prinf :
printf "%02d" 6
printf "%03d" 7
...

Bonne chance
Ajouter un commentaire
Ce document intitulé « boucle en bash » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook