bash

bash

  • Imprimindo uma caixa em volta do texto em shell

    Nada muito glamoroso. Só um script usando utf-8 pra fazer uma caixinha bonitinha em volta do texto.

      #!/usr/bin/env bash
    
    sizeof() {
        local msg="$1"
        local size=$(echo $msg | wc -L)
        # one space at beginning and other at the end
        size=$((size+2))
        echo $size
    }
    
    printchar() {
        local char="$1"
        local nr="$2"
        while [ $nr -gt 0 ]
            do
            echo -ne "$char"
            nr=$((nr-1))
        done
    }
    
    
    printbox() {
        local msg="$1"
        local s=$(sizeof "$msg")
    
        echo -n "┌"
        printchar "─" $s
        echo "┐"
        echo -e "│ ${msg} │"
        echo -n "└"
        printchar "─" $s
        echo -e "┘\n"
    }
    
    message="$@"
    printbox "$message"
    

    O código também está publicado no GitHub.