#!/bin/bash # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 source "$(dirname "$0")/lib/ulib/ulib" || exit 1 urequire DEFAULTS function display_help() { uecho "$scriptname: afficher l'heure USAGE $scriptname [options] OPTIONS -t, --time Afficher l'heure (par défaut) -c, --count Afficher le temps écoulé depuis le lancement de ce script -u, --units Avec l'option --count, afficher l'unité: sec., min. ou heures -o, --offset NBSEC Avec l'option --count, spécifier un nombre de secondes à partir duquel compter -s, --step NBSECS[=1] Spécifier la période de rafraichissement de l'affichage -a, --prefix PREFIX Spécifier une chaine à afficher avant l'heure -z, --suffix SUFFIX Spécifier une chaine à afficher après l'heure --cb Equivalent à -c -s 30 -a 'Connecté depuis ' -z '...'" } DEFAULT_STEP=1 what=time units= offset= step= prefix= suffix= args=( --help '$exit_with display_help' -t,--time what=time -c,--count what=count -u,--units units=1 -o:,--offset: offset= -s:,--step: step= -a:,--prefix: prefix= -z:,--suffix: suffix= --cb '$what=count; units=1; step=5; prefix="Connecté depuis "; suffix="..."' ) parse_args "$@"; set -- "${args[@]}" [ -n "$step" ] || step="$DEFAULT_STEP" setx start=date +%s [ -n "$offset" ] && start=$(($start - $offset)) while true; do case "$what" in time) setx msg=date +%H:%M:%S ;; count) setx now=date +%s TZ= setx msg=date -d "@$(($now - $start))" +%H:%M:%S msg="${msg#00:}"; msg="${msg#00:}" if [ -n "$units" ]; then if [ ${#msg} -ge 8 ]; then msg="$msg heures" elif [ ${#msg} -eq 5 ]; then msg="$msg min" elif [ ${#msg} -eq 2 ]; then msg="${msg#0} sec" fi fi [ ${#msg} -eq 2 ] && msg="${msg#0}" ;; esac echo -n $'\e[1G\e[K'"$prefix$msg$suffix" sleep "$step" done