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

7 réponses

1 2 3
Avatar
noone
On Tue, 29 Jan 2008 14:52:29 +0000, Kevin Denis wrote:

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


% which echo
echo: shell built-in command
% echo $SHELL
/bin/zsh



Avatar
Nicolas S.
a écrit:

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


% which echo
echo: shell built-in command
% echo $SHELL
/bin/zsh


nicolas ~ $ which echo
/bin/echo
nicolas ~ $ env | grep -i shell
SHELL=/bin/bash
nicolas ~ $ echo -e "Traitement de titi" "e["$(($COLUMNS - 6))"`"
"[ OK ]"
Traitement de titi [ OK ]
nicolas ~ $ uname -r
2.6.22-gentoo-r9-v1


--
Nicolas S.



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

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


C'est une séquence d'échappement à destination du terminal. Tu n'as p as
ncurses?

# env | grep -i ^term
# echo $COLUMNS
# toe

Que te donne:
# echo -e "e["20"`" "Test"

--
Nicolas S.

Avatar
Nicolas George
"Nicolas S." wrote in message
:
C'est une séquence d'échappement à destination du terminal. Tu n'as pas
ncurses?


Que vient faire ncurses dans l'histoire ?

Avatar
Nicolas S.
Nicolas George <nicolas$ a écrit:

Que vient faire ncurses dans l'histoire ?


Si ncurses est présent, c'est lui qui devrait intercepter les séquences
d'échappement.

--
Nicolas S.

Avatar
Nicolas George
"Nicolas S." wrote in message
:
Si ncurses est présent, c'est lui qui devrait intercepter les séquences
d'échappement.


Non, pas du tout. Tu devrais réviser l'image mentale que tu te fais de
ncurses, parce que tu l'as compris complètement de travers.

Ncurses est une bibliothèque qui fournit une API pour dessiner sur un
terminal, et traduit les appels à cette API en les séquences d'échappement
qui vont bien pour contrôler le terminal.

Avatar
mpg
Le (on) jeudi 31 janvier 2008 00:35, Nicolas S. a écrit (wrote) :

a écrit:
% which echo
echo: shell built-in command
% echo $SHELL
/bin/zsh


nicolas ~ $ which echo
/bin/echo
nicolas ~ $ env | grep -i shell
SHELL=/bin/bash


Note en passant : pour avoir le nom du shell courant, 'ps $$' me paraît plus
sûr. On est d'accord que génériquement les deux sont égaux entre eux parce
qu'ils sont égaux à notre shell de login, mais ce n'est pas toujours le cas
non plus...

Manuel.


1 2 3