(bash) echo align

Le
Professeur M
Salut à tous

suite des questions bêtes ;-)

Dans un boucle, j'ai un test avec affichage pour chaque boucle :


echo -n "Traitement de $REPERTOIRE "
if $TRAITEMENT
then
echo "[ OK ]"
else
echo "[ERREUR]"
fi

Ce qui me donne :

Traitement de tata [ OK ]
Traitement de toootoooo [ OK ]
Traitement de vide [ OK ]

Pour le moins inesthétique

Je préférerai :

Traitement de tata [ OK ]
Traitement de toootoooo [ OK ]
Traitement de vide [ OK ]

Une tabulation (echo -e "t[ OK ]") ne convient pas : la longueur des
$RÉPERTOIRE est très variable (3 à 30 car.)


Méph'
--
C'est parce que la lumière est plus rapide que le son que certains
ont l'air brillants avant d'avoir l'air con
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
YBM
Le #1912728
...
Traitement de tata [ OK ]
Traitement de toootoooo [ OK ]
Traitement de vide [ OK ]

Une tabulation (echo -e "t[ OK ]") ne convient pas : la longueur des
$RÉPERTOIRE est très variable (3 à 30 car.)



echo -e "Traitement de titi" "e["$(($COLUMNS - 6))"`" "[ OK ]"

cf. man console_codes

Professeur M
Le #1912727

cf. man console_codes


Thanks
--
C'est parce que la lumière est plus rapide que le son que certains
ont l'air brillants avant d'avoir l'air con

Professeur M
Le #1912726

echo -e "Traitement de titi" "e["$(($COLUMNS - 6))"`" "[ OK ]"

cf. man console_codes


Rha zut, marche pas...

Traitement de tata["-6"` [ OK ]
Traitement de toootoooo["-6"` [ OK ]
Traitement de vide["-6"` [ OK ]

'vais me plonger dans les mans
--
C'est parce que la lumière est plus rapide que le son que certains
ont l'air brillants avant d'avoir l'air con

Professeur M
Le #1912725

'vais me plonger dans les mans


Premier pb : mon « man echo » ne connaît pas « e », c'est sensé faire
quoi ? Il y a un truc qui m'échappe...
--
C'est parce que la lumière est plus rapide que le son que certains
ont l'air brillants avant d'avoir l'air con

vlad
Le #1912724
On Jan 29, 1:45 pm, Professeur Méphisto

Je préférerai :

Traitement de tata [ OK ]
Traitement de toootoooo [ OK ]
Traitement de vide [ OK ]



Utilise printf !

printf "traitement de %-30s" "$REPERTOIRE"
if $TRAITEMENT
then
echo "[ OK ]"
else
echo "[ERREUR]"
fi

a++

Kevin Denis
Le #1912721
Le 2008-01-29, Professeur Méphisto ecrivit:
'vais me plonger dans les mans


Premier pb : mon « man echo » ne connaît pas « e », c'est sensé faire
quoi ? Il y a un truc qui m'échappe...

Il y a le echo qui est un builtin du shell, donc man bash

e an escape character
et le echo qui est un binaire dans /bin/ et donc man echo
--
Kevin


Damien Wyart
Le #1912720
Je préférerai :

Traitement de tata [ OK ]
Traitement de toootoooo [ OK ]
Traitement de vide [ OK ]

Une tabulation (echo -e "t[ OK ]") ne convient pas : la longueur des
$RÉPERTOIRE est très variable (3 à 30 car.)


Dans les scripts redhat c'est fait avec une séquence ANSI comme ceci :

MOVE_TO_COL="echo -en \033[${RES_COL}G"

où RES_COL contient un numéro de colonne.

--
DW

Nicolas S.
Le #1912719
Professeur Méphisto
Je préférerai :

Traitement de tata [ OK ]
Traitement de toootoooo [ OK ]
Traitement de vide [ OK ]


Note que des fonctions très semblables existent très certainement déj à
sur ta distribution, elles sont utilisées au démarrage et à l'arrêt de
ta machine.

Chez moi, ces fonctions sont regroupées dans le
fichier /etc/init.d/functions.sh. Moyennant quelques adaptations si
nécessaire, tu peux reprendre ces fonctions à ton compte (dans un
fichier créé pour l'occasion bien sûr).

Chez gentoo, ces fonctions portent les noms einfo(), ewarn(), ebegin(),
et eend().

Au final, ça peut donner quelque chose de ce genre:

nicolas $ cat script.sh
#!/bin/sh

retval=0

# chemin à modifier vers le fichier adapté
source /etc/init.d/functions.sh

einfo "Message d'information"
ebegin "Démarrage de toto"
# traitement à dé-commenter:
# ./toto ; retval=$?
ewarn "Message d'alerte"
eend ${retval} "Erreur"

--- fin de fichier script.sh ---

nicolas $ ./script.sh
* Message d'information
* Démarrage de toto ...
* Message d'alerte [ ok ]

PS: le résultat est en couleur.

--
Nicolas S.

Nicolas George
Le #1912706
YBM wrote in message
echo est un composant de terminal


Elle sort d'où, cette traduction d'illetré ?

Luc.Habert.00__arjf
Le #1912705
YBM :

$ type echo
echo est un composant de terminal


Énorme! Tu fais comment pour avoir la traduction? Moi, avec LC_ALL=fr_FR,
c'est toujours en anglais.

Publicité
Poster une réponse
Anonyme