problème script shell en bash!

problème script shell en bash! - Shell/Batch - Programmation

Marsh Posté le 26-11-2005 à 08:30:50    

Bonjour voila j'ai un script shell en bash a faire j'aurai voulu savoir si vous pouviez me depanné !
je cherche la fonction qui permette d'afficher une suite de nombre dont l'epace entre chaque nombre serait de 5!
Merci d'avance

Reply

Marsh Posté le 26-11-2005 à 08:30:50   

Reply

Marsh Posté le 26-11-2005 à 09:04:35    

Pour une sortie formatée : printf

Reply

Marsh Posté le 30-11-2005 à 15:39:13    

Elmoricq a écrit :

Pour une sortie formatée : printf


En Bourne Again SHell ???
 

bibundom a écrit :

Bonjour voila j'ai un script shell en bash a faire j'aurai voulu savoir si vous pouviez me depanné !
je cherche la fonction qui permette d'afficher une suite de nombre dont l'epace entre chaque nombre serait de 5!
Merci d'avance


 

# Fonction qui affiche des éléments espacés de "n" espaces
affich()
{
    (
          # Récupération de "n"
          n=$1; shift
 
          # Boucle sur les nombres à afficher
          for nb
          do
              # Affichage du nombre
              echo -n "$nb"
 
              # Affichage des "n" espaces
              i=0
              while test $i -lt $n
              do
                   echo -n " "
                   i=`expr $i + 1`
              done
         done
     )
}


 
Comment tu t'en sers ?
1) tu recopie le code de cette fonction en début de ton script shell
2) quand tu veux afficher tes nombres avec 'x' espaces, tu appeles:
affich x 1 2 3 4 5
'x' étant évidemment le nombre d'espaces que tu veux
 
Les parenthèses vides en début et fin de fonction ont une importance => elles permettent de "localiser" les variables dans la fonction. Si par exemple dans le script utilise une variable "i" ou "n", cette variable ne sera pas altérée lors de l'appel à "affich" qui utilise aussi des variables nommées "i" et "n".

Message cité 1 fois
Message édité par Sve@r le 30-11-2005 à 15:55:33

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 30-11-2005 à 20:37:15    

Sve@r a écrit :

En Bourne Again SHell ???


Oui, la plupart des systemes POSIX on une commande "printf" qui marche un peu comme le printf du C. man 1 printf.
 
Exemple :

/home/nicolas $ printf '|%12s|%-12s|\n' right left
|       right|left        |


Message édité par matafan le 30-11-2005 à 20:42:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed