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