VTIP: Nejkratsi linuxovy "vir"

Roman Vasicek rv na petamem.com
Pátek Srpen 1 15:21:03 CEST 2003


On Fri, 1 Aug 2003, Aben Siatris wrote:

>
> > -- Peter Kruty, oozy
> > --
> > Fingerprint = E893 658B 141D 0998 4976  EF14 905C 90D4 7B22 F749
> > #!/bin/bash -- require: bash gcc perl guile
> > perl -we "\$_ =\`guile -c '(display (list->string (reverse (\
> > string->list \\\"\$ARGV[0]\\\"))))'\`;sub{print}->(s/zoo/alh\
> > \n/i)" `echo "char a[]=\"Oozy\\n\";int main(){char*i;for(i=a\
> > ;*i!=0;i++)putchar(0[i]);}"|cc -x c - -o $$&&./$$&&rm -f $$`;
> a toto robi zas co?
> robim uz par rokov v perli, ale toto sa mi vazne lustit nechce :)

Pokud tomu dobre rozumim, tak to vypise 'yalh'.

Perlu tam zase tak moc neni, ten pouze spusti guile a preda jako argument
skript do nejz vlozi i prvni argument s nimz je vyvolan. Timto argumentem
je vysledek behu skriptu

echo "char a[]=\"Oozy\\n\";int main(){char*i;for(i=a;*i!=0;i++)putchar(0[i]);}"|cc -x c - -o $$&&./$$&&rm -f $$

echo zde vytvori program v C jenz vypise "Oozy\n", tento program je pres
pipe predan prekladaci, ktery jej prelozi a ulozi do souboru, jehoz jmeno
je PID aktualne beziciho procesu. Nasledne je takto vytvorena binarka
spustena a po uspesnem ukonceni smazana.

Vysledkem tohoto je tedy text Oozy, ktery je jako prvni argument
predan perlovskemu skriptu a vlozen do skriptu pro guile. Vysledek behu
guile skriptu je ulozen do implicitni skalarni promenne $_, ktera
je pak s prislusnou modifikaci (nahrazeni 'zoo' za 'alh'- case
insensitive) vypsana.


 Pokud jsem se nekde zmylil, tak mne prosim nekdo opravte...

-- 
 best regards
  Ing. Roman Vasicek

 software developer
+----------------------------------------------------------------------------+
 PetaMem s.r.o., Ocelarska 1, 190 00 Praha 9 - Liben, Czech republic
 http://www.petamem.com/




Další informace o konferenci Linux