#!/usr/bin/ksh #----------------------------------------------------- # affiche un newline #----------------------------------------------------- nl() { printf "\n" } #----------------------------------------------------- # affiche sur 3 digits et complete a gauche par des 0 #----------------------------------------------------- print_3digits () { printf "3%02d" $1 } #----------------------------------------------------- # affiche une valeur en octets en ko #----------------------------------------------------- print_ko () { printf $(($1/1024)) } #----------------------------------------------------- # affiche une valeur en octets en mo #----------------------------------------------------- print_mo_int () { printf $(($1/1048576)) } #----------------------------------------------------- # affiche une valeur en octets en mo #----------------------------------------------------- print_mo () { echo $1 | awk '{printf ("%7.2f ",$1/1048576) }' } #----------------------------------------------------- # affiche une valeur en octets en go #----------------------------------------------------- print_go_int () { printf $(($1/1073741824)) } #----------------------------------------------------- # affiche une valeur en octets en go #----------------------------------------------------- print_go () { echo $1 | awk '{printf ("%7.2f ",$1/1/1073741824) }' } #----------------------------------------------------- # affiche une ligne #----------------------------------------------------- print_line () { printf '%60s\n' | tr ' ' $1 } function texte_en_boite_trait { largeur=$1 # nom de variable plus clair limite=$(($largeur + 4)) # marge des deux cotes print -n -- "+" # non portable ? compteur=0 while [ $compteur -lt $limite ] ; do print -n -- "-" # non portable ? compteur=$((compteur + 1)) done print -- "+" # non portable ? } function texte_en_boite { texte=${1:-"BOITE DE TEXTE"} # message par defaut taille=${#texte} # mesure de la taille texte_en_boite_trait $taille print "| " $texte " |" texte_en_boite_trait $taille } #=================================== # test #=================================== verif() { echo $* eval "$*" nl nl } fonction() { print_line - echo $1 print_line - nl } #----------------------------------------------------- # jeu de test #----------------------------------------------------- test_lib() { fonction print_3digits verif print_3digits 4 verif print_3digits 34 fonction print_line verif print_line - verif print_line . fonction texte_en_boite echo texte_en_boite "mon texte perso" texte_en_boite "mon texte perso" fonction print_ko print_mo verif print_ko 3486165432 verif print_mo 3486165432 verif print_mo_int 3486165432 verif print_go 3486165432 verif print_go_int 3486165432 } #=================================== # main #=================================== if [ "$1" == "-t" ] ; then test_lib else cat << EOU usage: lib_print -t test la librairie librairie a inclure EOU fi