FAIL!

Kurde skopiowałem fragment kodu rosyjskiej ruletki, a konkretnie (Ps wiem, że można inaczej):

#!/bin/bash
OMG=$[ $RANDOM % 6 ];
echo $OMG;

Dla nie wtajemniczonych – jeśli modulo było równe 0 to następowało kasowanie wszystkich plików na dysku.

Zapisałem plik, odpalam i co? 0! To jeszcze nic. Pół godziny później znowu odpalam ten skrypt i znowu 0! Dobrze, że nie zaryzykowałem ;-]

PS jeśli nie wymiękasz to wpisz w konsoli: [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo “Still alive”

PPS kod bezczelnie zakosiłem z opisu RavBakera ;p

10 Responses to “FAIL!”

  1. aph March 5, 2008 at 5:01 pm #

    [email protected]:~% echo $[ $RANDOM % 6 ]
    0
    [email protected]:~% echo $[ $RANDOM % 6 ]
    0
    [email protected]:~%

    hm… ;)

  2. radmen March 5, 2008 at 5:01 pm #

    He, jest się czego bać ;p

  3. wzs March 5, 2008 at 5:01 pm #

    Widać ten random to nawet pseudolosowy nie jest :)

  4. BTM March 5, 2008 at 5:01 pm #

    [[email protected]] echo $[$RANDOM%6]
    0
    [[email protected]] echo $[$RANDOM%6]
    1
    [[email protected]] echo $[$RANDOM%6]
    3
    [[email protected]] echo $[$RANDOM%6]
    4
    [[email protected]] echo $[$RANDOM%6]
    1
    [[email protected]] echo $[$RANDOM%6]
    2

    Har ;)

  5. Cyber Killer March 5, 2008 at 5:01 pm #

    [email protected]:~$ echo $[ $RANDOM % 6 ]
    2
    [email protected]:~$ echo $[ $RANDOM % 6 ]
    3
    [email protected]:~$ echo $[ $RANDOM % 6 ]
    0
    [email protected]:~$ echo $[ $RANDOM % 6 ]
    4
    [email protected]:~$ echo $[ $RANDOM % 6 ]
    2
    [email protected]:~$ echo $[ $RANDOM % 6 ]
    1
    [email protected]:~$ echo $[ $RANDOM % 6 ]
    3
    [email protected]:~$ echo $[ $RANDOM % 6 ]
    1
    [email protected]:~$ echo $[ $RANDOM % 6 ]
    0
    [email protected]:~$ echo $[ $RANDOM % 6 ]
    1

    Ale tej ruletki z wykoszeniem wszystkiego nie odważę się odpalić. Chociaż w sumie w razie co to z konta zwykłego usera powinna być szansa powstrzymać morderczą machinę jakby się nie udało ;-) .

  6. D4rky March 5, 2008 at 5:01 pm #

    [ $[ $RANDOM % 6 ] == 0 ] && rm -rf ~/porn/ || echo „Still can fap”

    Nawet straszniejsze :D DD

  7. night March 5, 2008 at 5:01 pm #

    [19:27:49] [email protected]:~$ while [ „1” -eq „1” ]; do OMG=$[ $RANDOM % 6 ]; echo $OMG; done > wyniki

    [19:28:02] [email protected]:~$ ls -lah | grep -i wyniki
    -rw-r—r— 1 night night 133K mar 21 19:28 wyniki
    [19:28:12] [email protected]:~$ cat wyniki | wc -l
    67902
    [19:28:21] [email protected]:~$ cat wyniki | grep 0 | wc -l
    11285
    [19:28:29] [email protected]:~$ echo „67902 / 11285” | bc -l
    6.01701373504652193176

    Całkiem dobry rozkład, więc po prostu miałeś pecha i to niesamowitego :) ). Warto powtórzyć dla wiekszej ilości powtórzej.

  8. night March 5, 2008 at 5:01 pm #

    Dla większej ilości wyników Bash nadal daje radę i wychodzi na to, że głupi random z modulo jest całkiem dobrym generatorem liczb pseudolosowych.

    [19:33:27] [email protected]:~$ cat wyniki | wc -l
    218008
    [19:33:30] [email protected]:~$ cat wyniki | grep 0 | wc -l
    36098
    [19:33:47] [email protected]:~$ echo „218008 / 36098” | bc -l
    6.03933735941049365615

    Co ciekawe, w C/C++ czasem ustawienie złego seed powoduje gorsze wyniki niż w bashu. Wniosek? Siekiera na muchę nie zadziała ;D

    Kiedyś odpaliłem to na głównym serwerze PWr… Raz… Ale ciiii, może o tym nie mówmy :]. Byłem pijany ;]

  9. radmen March 5, 2008 at 5:01 pm #

    Lol hardcorowiec z Ciebie xD

  10. night March 5, 2008 at 5:01 pm #

    Raz mi się zdarzyło :) ) Prawda jest taka, że w najgorszym wypadku oryginalna forma przerwana odpowiednio wcześniej nie usunie ważnych danych. A po prostu założyłem się z kumplem o zgrzewkę browara:) 1/6 to w końcu tylko 16% szans na porażkę. Warto było :]

    Takie skrypty jak wyżej wspomniany pamiętają bardzo, bardzo stare czasy systemów uniksowych. W sieci jest tego więcej (niekoniecznie tak szkodliwych). Jeden z najbardziej pamiętnych skrypcików, którego teraz nie jestem w stanie przytoczyć, korzystając z xosd pokazywał na ekranie losowe fortunki. Czasem jednak zamiast tego wyrzucał na ekran losowe śmieci z /dev/urandom. Wyglądało to komicznie, gdy „uszczęśliwiony geek” może sobie czytać co 1 minutę fajną fortunkę na ekranie a tu nagle JEB – dostaje na ekran śmieci a na dodatek każda próba zamknięcia tego powoduje powstanie większej ilości śmieci (ruch myszką, klawiatura powoduje przerwanie). Śmiechu dla zgromadzonych wokół na kilka minut :) . Polecam :) )