Juin 142011
 

j’ai eu envie de centrer un texte hier sur mon terminal, afin de rendre plus lisible la sortie d’un script, voici comment j’ai fait, ça peut servir:

Download : txtcenter.sh#!/bin/bash

# message a afficher
MSG= »${*} »

# on verifie etre sur un terminal
tty >/dev/null
[ « $? » != « 0 » ] && echo « ${MSG} » && return 0

COLS= »$(tput cols) »
[ « $? » != « 0 » -o -n « $(echo ${COLS} |sed ‘s/[0-9]//g’) » ] && echo « ${MSG} » && return 0

# on entoure le message d’espaces
BORDER= »  »

# on peut centrer le texte maintenant
echo « ${MSG} » |awk \
-v COLS= »${COLS} » \
-v BORDER= »${BORDER} » \
‘{
MSG_LENGTH = length($0) ;
COLS = (COLS – MSG_LENGTH);
BORDER_LENGTH = length(BORDER) ;
for ( i = 1 ; i <= COLS ; i = (i + BORDER_LENGTH) ) { i = (i + BORDER_LENGTH) ; BORDER_MSG = BORDER_MSG BORDER; } printf ("%s%s%s\n",BORDER_MSG, $0, BORDER_MSG) ; }' [/bash]

 Laisser un commentaire

Vous pouvez utiliser ces tags et attributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(requis)

(requis)

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.