[gull] Truc et astuces: bash: jouons avec les variables et eval

Félix Hauri felix at f-hauri.ch
Wed Nov 2 15:26:59 CET 2011


Bonjour,

Petite démo, à toutes fins utiles (c'est du bash >=2.05b)

$ eval $(
    env LANG=fr_CH date +"$(
	date --help |
	    sed -ne '/^  %[^ %]\{1,4\} .*$/{
		s/^  %\([^ ]*\) .*$/\1/;
		y|:|_|;
		p;
		y|_|:|;
		p}' | 
	xargs printf "DATE_%s=\"%%%s\" "
	)"
    )

$ echo $DATE_X
15:14:39
$ echo $DATE_x
02. 11. 11
$ echo $DATE_{x,X} 
02. 11. 11 15:14:39
$ echo $DATE_{a,d,b,Y,T} 
mer 02 nov 2011 15:14:39

Jusque là, c'est bonnard, mais alors...

Si
$ printf ".%s.\n" $DATE_{X,x,,c}
.15:14:39.
.02..
.11..
.11.
.mer.
.02.
.nov.
.2011.
.15:14:39.
.CET.

ne donne pas le resultat escompté, on s'en sort avec:

$ eval printf\ \".%s.\\n\"\ \"\$\{DATE_{X,x,,c}\}\"\;
.15:14:39.
.02. 11. 11.
..
.mer 02 nov 2011 15:14:39 CET.

J'espère m'être fait comprendre...

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


More information about the gull mailing list