[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