Sommaire |
la commande tput cols renvoi la largeur actuelle du terminal en nombre de caractère, soit le nombre de colonne.
printf -v spaces '%*s' $(tput cols) ''; printf '%s\n' ${spaces// /#}
autre solution:
printf "#%.0s" {$(seq $(tput cols) )}
avec toto variable contenant le titre.
printf -v spaces '%*s' $((($(tput cols)-${#toto}-2)/2)) '' printf '%s' ${spaces// /#};printf " $toto " printf '%s\n' ${spaces// /#}
printtitre () { # parametre 1: caractere de remplissage # parametre 2: titre a centrer et encadrer par le caractere de remplissage local c=$1 local titre=" $2 " #test si ligne impaire if (( ( ${#titre} + $(tput cols) ) % 2 > 0 )) ; then printf "$c"; fi printf "%*s" $(( ($(tput cols) - ${#titre} ) / 2 )) '' | sed "s/ /$c/g" printf "$titre" printf "%*s" $(( ($(tput cols) - ${#titre} ) / 2 )) '' | sed "s/ /$c/g" printf "\n" }