From: Vincent Le Gallic Date: Sun, 29 Sep 2013 01:44:37 +0000 (+0200) Subject: [cadre.sh] Pour faire rapidement un joli cadre ASCII X-Git-Url: http://gitweb.pimeys.fr/?a=commitdiff_plain;h=397dcb2f25297877ac3bc8e126603a1d8610c69b;p=scripts-20-100.git [cadre.sh] Pour faire rapidement un joli cadre ASCII --- diff --git a/cadre.sh b/cadre.sh new file mode 100755 index 0000000..55851a2 --- /dev/null +++ b/cadre.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# Génère un cadre de ce type : + +################################################################# +## Suite des paramètres passés au script ## +################################################################# + +# Variable à changer pour modifier la taille du cadre obtenu +boxsize=65 +bordersize=2 + +commentchar="#" +fillerchar=" " + +text=$* + +# Génération de plusieurs caractères +function gen_chars +{ + local i + + OUT="" + + for ((i = "$2"; i>0; i--)); do + OUT="${OUT}$1" + done +} + +textsize=${#text} + +lenspaces=$((boxsize - textsize - 2*bordersize)) + +if [[ ${lenspaces} -lt 0 ]]; +then + echo "Texte trop grand pour le cadre" + exit 1 +fi + +leftspaces=$((lenspaces/2)) + +if [[ $((${lenspaces} % 2)) -eq 0 ]]; +then + rightspaces=$((lenspaces/2)) +else + rightspaces=$((lenspaces/2 + 1)) +fi + +# Première ligne de # +gen_chars "${commentchar}" ${boxsize} +echo "${OUT}" +# Frontière gauche +gen_chars "${commentchar}" ${bordersize} +echo -n "${OUT}" +# Filler gauche +gen_chars "${fillerchar}" ${leftspaces} +echo -n "${OUT}" +# Texte central +echo -n "${text}" +# Filler droit +gen_chars "${fillerchar}" ${rightspaces} +echo -n "${OUT}" +# Frontière droite +gen_chars "${commentchar}" ${bordersize} +echo "${OUT}" +# Deuxième ligne de # +gen_chars "${commentchar}" ${boxsize} +echo "${OUT}"