affichage aligné avec la commande echo

affichage aligné avec la commande echo - Shell/Batch - Programmation

Marsh Posté le 08-01-2009 à 20:37:46    

Bonjour,
j'ai ecrit ce petit script pour automatiser des tests, mais l'affichage ne me convient pas  :
 

(
cd ./dossier
for i in * ; do
    echo -n $i ".................."
    if progtest $i | grep -q 'Erreur'; then
        echo "Erreur trouvee"
        exit 1
else
    echo "OK"
fi
done
)


 
Cela imprime :
 


fichier1 ..................OK
fichier_nom__plus_long1 ..................OK
intit..................OK
fichier2 ..................OK
fichier3 ..................OK


 
J'aimerais pouvoir produire un affichage régulier, c'est-à-dire les "OK" alignés sur la droite, un peu comme dans les scripts d'installtion.
comment faire ?
Merci

Reply

Marsh Posté le 08-01-2009 à 20:37:46   

Reply

Marsh Posté le 09-01-2009 à 09:36:09    

Tu peux utiliser printf, mais ça ne te permettra pas de mettre des "..." comme tu le fais :

printf "%-20s%s\n" toto titi


Si tu veux absolument avoir des points plutôt que des espaces, il va falloir que tu fasses ça à la main en calculant le nombre de points qu'il faut afficher, en fonction de la taille de tes deux champs.

Reply

Marsh Posté le 09-01-2009 à 11:14:55    

Exemple avec des points de suites :

Code :
  1. for a in *
  2. do
  3.   printf "%-.30s %s\n" "$a .............................." OK
  4. done


Message édité par Mara's dad le 09-01-2009 à 11:20:01

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Sujets relatifs:

Leave a Replay

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