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
krzys@musial:~% echo $[ $RANDOM % 6 ]
0
krzys@musial:~% echo $[ $RANDOM % 6 ]
0
krzys@musial:~%
hm…
He, jest się czego bać ;p
Widać ten random to nawet pseudolosowy nie jest
[root@logs] echo $[$RANDOM%6]
0
[root@logs] echo $[$RANDOM%6]
1
[root@logs] echo $[$RANDOM%6]
3
[root@logs] echo $[$RANDOM%6]
4
[root@logs] echo $[$RANDOM%6]
1
[root@logs] echo $[$RANDOM%6]
2
Har
ck@moloch:~$ echo $[ $RANDOM % 6 ]
2
ck@moloch:~$ echo $[ $RANDOM % 6 ]
3
ck@moloch:~$ echo $[ $RANDOM % 6 ]
0
ck@moloch:~$ echo $[ $RANDOM % 6 ]
4
ck@moloch:~$ echo $[ $RANDOM % 6 ]
2
ck@moloch:~$ echo $[ $RANDOM % 6 ]
1
ck@moloch:~$ echo $[ $RANDOM % 6 ]
3
ck@moloch:~$ echo $[ $RANDOM % 6 ]
1
ck@moloch:~$ echo $[ $RANDOM % 6 ]
0
ck@moloch:~$ 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
.
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf ~/porn/ || echo „Still can fap”
Nawet straszniejsze
DD
[19:27:49] night@orion:~$ while [ „1” -eq „1” ]; do OMG=$[ $RANDOM % 6 ]; echo $OMG; done > wyniki
[19:28:02] night@orion:~$ ls -lah | grep -i wyniki
-rw-r—r— 1 night night 133K mar 21 19:28 wyniki
[19:28:12] night@orion:~$ cat wyniki | wc -l
67902
[19:28:21] night@orion:~$ cat wyniki | grep 0 | wc -l
11285
[19:28:29] night@orion:~$ 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.
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] night@orion:~$ cat wyniki | wc -l
218008
[19:33:30] night@orion:~$ cat wyniki | grep 0 | wc -l
36098
[19:33:47] night@orion:~$ 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 ;]
Lol hardcorowiec z Ciebie xD
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
)