Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(bash) echo align

27 réponses
Avatar
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

10 réponses

1 2 3
Avatar
YBM
...
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

Avatar
Professeur M

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

Avatar
Professeur M

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

Avatar
Professeur M

'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

Avatar
vlad
On Jan 29, 1:45 pm, Professeur Méphisto
wrote:

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++

Avatar
Kevin Denis
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


Avatar
Damien Wyart
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 33[${RES_COL}G"

où RES_COL contient un numéro de colonne.

--
DW

Avatar
Nicolas S.
Professeur Méphisto a écrit:

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.

Avatar
Nicolas George
YBM wrote in message <479f9062$0$24031$:
echo est un composant de terminal


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

Avatar
Luc.Habert.00__arjf
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.

1 2 3