Re: [HS] Re: calcul de temps
Le vendredi 1 août 2014, 12:10:57 Francois Lafont a écrit :
>[…]
> Par exemple :
>
> a=1396459867
> b=1406879835
> diff=$(( b - a ))
> days=$(( diff / 86400 ))
> # etc.
Oui, du peu que l’on en connaisse, la question originale (une
fois correctement lue) pouvait se traiter en (ba)sh seul :
calcul et formatage de (j, h, m, s) à partir d’un nombre de
secondes.
Car moi-meme semble bien seulement vouloir un programme
simple pour faire ça, soit avec `date`, soit avec un autre
programme.
Le hic, c’est qu’une durée ça n’est pas une date et qu’il n’y
a pas de fonction de base pour ça. Donc il faut bien soit
calculer soi-même (ce que moi-meme appelle bidouillage ? ou
alors parlait-il de bidouiller la sortie de `date` pour enlever
le jour de trop ?), soit utiliser quelque chose qui sache qu’une
durée c’est différent d’une date. Et ce quelque chose, c’est une
bibliothèque, pour Perl, C, ou autre. D’où le fait que moi-meme
n’a trouvé que des références à Perl, C, Java… et le fait que,
moi-même (notez l’accent ;o), voyant des manipulations de dates,
une réticence à utiliser un vrai langage et une proposition
d’utiliser un interprète bridé, ai couru à la défense de
l’utilisation d’un vrai interprète…
> > Le shell, ça va bien un peu mais ça devient vite difficile
> > à maintenir
>
> D'accord avec ça également.
>
> > et très gourmand en processus inutiles.
>
> Là aussi, j'ajoute un bémol. Parfois le shell peut
> s'avérer plus rapide qu'un autre interpréteur (comme Perl
> ou autre) sur des petits programmes assez simples et courts
> car, dans le temps d'exécution, il faut compter le temps
> de chargement de l'interpréteur lui-même, […]
Ok mais il y avait le mot-clef « devient ». Ma conclusion
généralisait : le shell, c’est très bien comme glu (traitement
par lot, tubes, quelques variables, etc.) mais, souvent, le
problème se complexifie et, en bash, on se met alors à
compliquer le script : on utilise de plus en plus de petits
programmes simples (sed, grep, cut…) pour contourner les manques
du shell alors qu’un seul processus interprète suffirait et
serait beaucoup plus clair (parfois un simple awk). (Sans parler
des UUOC ;o)
--
Sylvain Sauvage
Reply to: