un timer en shell - retour accueil
git clone git://bebou.netlib.re/timer
Log | Files | Refs |
commit afcace656c9f472931496650febefe4c3b9272aa parent ccd23b80fb9693bcc601427df8040785f363ae09 Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Fri, 12 Jan 2024 10:58:39 +0100 Refonte Une fonction pour calculer le nb de secondes Une autre fonction pour lancer et faire l'affichage L'astuce de la boucle for et du read pour utiliser des noms de variables qui font sens Ca découple un peu ce qui est pas mal mais ça complexifie Surtout histoire d'apprendre des trucs Diffstat:
M | timer | | | 20 | +++++++++++++++----- |
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/timer b/timer @@ -21,8 +21,18 @@ Exemples : exit 0 fi -sec=$(( ${3:-0}*3600+${2:-0}*60+${1:-0} )) -for i in $(seq $sec -1 1);do - date --date "01 jan 1970+$i seconds" +'%H:%M:%S' - sleep 0.995 -done +launch(){ + for it; do read -r "${it?}"; done + for i in $(seq $total -1 1);do + date --date "01 jan 1970+$i seconds" +'%H:%M:%S' + sleep 0.995 + done +} + +calculate(){ + for it; do read -r "${it?}"; done + echo $(( ${hours:-0}*3600+${minutes:-0}*60+${seconds:-0} )) +} + +echo "$1\n$2\n$3" | calculate seconds minutes hours | launch total +