Boucle en bash

Moss -  
mamiemando Messages postés 34184 Statut Modérateur -
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

1 réponse

mamiemando Messages postés 34184 Statut Modérateur 7 888
 
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
0