[gull] Truc et astuces: Ascii-art... en bash.

felix felix at f-hauri.ch
Mon Nov 4 11:35:08 CET 2013


Re,

On Mon, Nov 04, 2013 at 06:24:27AM +0100, Arnaud wrote:
> Il faudrait aussi rajouter:
> export LANG=C

Merci, mais tu pouvais:

env LANG=C ./ascii-clock.sh

J'ai donc pu tester:

env LANG=fr_FR ./ascii-clock.sh
ascii-clock.sh: ligne 45 : printf: 135750.000: nombre non valable
ascii-clock.sh: ligne 45 : printf: 0.000: nombre non valablee
ascii-clock.sh: ligne 48 : printf: 0.0000: nombre non valableable
ascii-clock.sh: ligne 45 : printf: 311666.666: nombre non valable
...

et corrigé:

$ diff -u0 ascii-clock.sh -
--- ascii-clock.sh   2013-11-04 08:29:28.000000000 +0100
+++ -   2013-11-04 08:30:16.811893229 +0100
@@ -4 +4 @@
-RAY=${1:-12} NowH=$2 NowM=$3
+RAY=${1:-12} NowH=$2 NowM=$3 LANG=C

(Notes que l'``export'' n'est pas nécessaire,
 puisqu'il n'y a pas de fork! ;-)

> (bash 4.2.45)
Merci et bravo pour la précision du commentaire.

> En tout cas, c'est sympa, en regardant rapidement, ça n'a pas dû se
> faire en 5 minutes :)
Pas exactement, mais c'est un assemblage de plusieur concepts établis
au fil des années. C'est donc plus une ``révision'', une mise en
pratique... et un exercice de style, qu'un développement de zéro.

Il démontre bien les limites du bash: S'il est un environnement universel
très efficace et très souple, ce N'est PAS un language de programmation.

Pour comparer voici une version Perl qui fait assez précisement la même
chose, avec la même présentation:

http://www.f-hauri.ch/vrac/ascii-clock-pl.txt

Comme pour la version bash, le `S` disparait pendant le rafraichissement.
cependant dans cette version, même avec un pc peu performant (raspberry pi,
Pentium III à 500Mhz), lancé avec un rayon de 50, on ne voit pas le `S`
disparaitre.

xterm -xrm '*faceSize:6' -fg grey -bg black -geom 201x101 -e ./ascii-clock.pl -a 50

Et donc, les traces sur les ressources n'ont rien à voir:
$ ascii-clock.pl 7

After     PMem   PCpu      Mem
    0' 0"  0.0%   0.0%    23.5M
   10'30"  0.0%   0.0%    23.5M 
 1h 0' 0"  0.0%   0.0%    23.5M 
 2h 0' 0"  0.0%   0.0%    23.5M 

Cerise:
  Cette version peut en outre etre lancée avec l'argument `-a` pour dessiner
  les aiguilles des heures et minutes en tenant compte des fraction:
    11H59 placera l'aiguille des heures à midi (ou presque).

--
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch


More information about the gull mailing list