From 397dcb2f25297877ac3bc8e126603a1d8610c69b Mon Sep 17 00:00:00 2001 From: Vincent Le Gallic Date: Sun, 29 Sep 2013 03:44:37 +0200 Subject: [PATCH] [cadre.sh] Pour faire rapidement un joli cadre ASCII --- cadre.sh | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 cadre.sh 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}" -- 2.39.2