[gull] Truc et astuces: bash: jouons avec les variables et eval
Félix Hauri
felix at f-hauri.ch
Sat Nov 5 19:02:56 CET 2011
:->>
On Sat, Nov 05, 2011 at 02:02:28PM +0100, Jean-Pierre Rupp wrote:
> Bon,
>
> Tu as là quelque chose qui ressemble un peu du obfuscated code.
Dois'je m'en offusquer?
> Peut-être tu pourras quelque chose de plus lisible avec Perl, mas ça ne
> serait pas assez « fun » :-)
Surtout que, de mon point de vue, manipuler des variables en BASH, c'est
limite...
A partir d'un certain point, j'abandonne le shell pour le faire en perl,
bien plus pratique.
Mais tant qu'à le faire en shell, autant ``éviter'' perl,
qui est tout de même plus lourd que sed.
Pour ce qui est de ``plus lisible'', cela se discute:
eval $(date +"$(date --help |
perl -ne '/^\s+%([^ %]{1,4})\s/&&do{
(my $vname=$1)=~y|:|_|;printf "DATE_%s=\"%%%s\" ",$vname,$1};')")
eval $(date +"$(date --help |
sed -ne '/^ %[^ %]\{1,4\} .*$/{
s/^ *%\([^ ]*\) .*$/DATE_\1=\"%\1\"/;:loop;/[^:%]:/{s/:/_/;tloop};p}')")
Bon, d'accord, c'est peut être un peu plus lisible en Perl, mais c'est
égallement plus cher.
--
Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
More information about the gull
mailing list