Daily Shaarli

All links of one day in a single page.

June 15, 2019

How to delete and replace last line in the terminal using bash? - Stack Overflow

Le code ci-dessous gère la dernière ligne affichée (pas de clear du terminal).
La fonction est un timer. Elle attend deux paramètres : un nombre $1 et une chaîne de caractères $2 contenant le flag %s pour insérer $1 dans la chaîne de caractères. Le timer est mis à jour toutes les secondes.

#!/bin/bash
timeout () {
    tput sc
    time=$1; while [ $time -ge 0 ]; do
        tput rc; tput el
        printf "$2" $time
        ((time--))
        sleep 1
    done
    tput rc; tput ed;
}

La commande principale est tput. Utile pour les futurs scripts bash :)