Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

BASH, random testiranje više uslova, izlaz na prvom uspešnom.

[es] :: Skript jezici :: BASH, random testiranje više uslova, izlaz na prvom uspešnom.

[ Pregleda: 57290 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pisac

Član broj: 13046
Poruke: 4449



Profil

icon BASH, random testiranje više uslova, izlaz na prvom uspešnom.21.06.2016. u 02:07 - pre 25 meseci
Imam nekoliko uslova koje treba da testiram i pri prvom uspešnom preduzmem radnje a ostali se zanemariju:

Code:
if a; then trt
elif b; then prd
elif c; then kak
else jbg


Medjutim, to treba da uradim random redosledom, kako ne bi uvek isti uslov 'a' bio prvi u testiranju.

E, nemam ideju kako to da uradim a da bude kompaktno i elegantno.
Da li je uvreda budali reći da je budala?
 
Odgovor na temu

srbaja
nekada kblo 45

Član broj: 4671
Poruke: 261



Profil

icon Re: BASH, random testiranje više uslova, izlaz na prvom uspešnom.21.06.2016. u 09:17 - pre 25 meseci
Da li 'jbg' treba uvek da bude na kraju? Da li 'trt' uvek sledi posle 'if a' ili se randomizuje samo uslovi a akcije su uvek istim redosledom?
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4472



Profil

icon Re: BASH, random testiranje više uslova, izlaz na prvom uspešnom.21.06.2016. u 09:59 - pre 25 meseci
Code:
#!/bin/bash
( $(exit $(( (RANDOM % 4) ))) && echo 'foo' ) || ( $(exit $(( (RANDOM % 4) ))) && echo 'bar' ) || ( $(exit $(( (RANDOM % 4) ))) && echo 'baz' ) || echo 'fee'


nek proveri neko ko se bavi shell scriptingom.

A pre toga pročitaj ovo: http://mywiki.wooledge.org/XyProblem i reci koji problem želiš da rešiš, a ne kako misliš da ga rešiš.

[Ovu poruku je menjao jablan dana 21.06.2016. u 11:12 GMT+1]
 
Odgovor na temu

pisac

Član broj: 13046
Poruke: 4449



Profil

icon Re: BASH, random testiranje više uslova, izlaz na prvom uspešnom.21.06.2016. u 13:56 - pre 25 meseci
Nije ista logika, kod tebe je svaka provera uslova random a meni treba samo random redosled a ne random provera.

Drugim rečima kod tebe može da se desi da se 'jbg' dobije i ako su sva tri uslova ispunjena, ako tako random odluči

'jbg' je uvek na kraju, 'trt' je uvek akcija za 'a', 'prd' je uvek akcija za 'b', a 'kak' je uvek za 'c', i svi uslovi moraju da se provere pre nego što se uradi 'jbg' jer je 'jbg' jako loša stvar

Problem je lepo opisan, još samo da nađem lepo rešenje .

Problem je u stvari prost, imam 3 voip tranka i preko nekog od njih treba da prosledim poziv, ako ne radi neki idem na sledeći, i tako do 'jbg' odustajanja. Međutim ne želim da pozivi uvek idu preko 'a' tranka, već da se sve svaki put proverava random redosledom.


Da li je uvreda budali reći da je budala?
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4472



Profil

icon Re: BASH, random testiranje više uslova, izlaz na prvom uspešnom.21.06.2016. u 14:08 - pre 25 meseci
Mislim da pred bash postavljaš malo previsoke zahteve. Tj, i kad budeš uspeo da uradiš to što hoćeš, taj kod neće moći niko živ posle toga da održava. Predlažem ti da to što ti treba napišeš u nekom poštenom skripting jeziku, dakle perl, python ili ruby, u kojima je to što hoćeš trivijalno za napisati. Ako se odlučiš za ruby, mogu da ti pomognem.
 
Odgovor na temu

pisac

Član broj: 13046
Poruke: 4449



Profil

icon Re: BASH, random testiranje više uslova, izlaz na prvom uspešnom.21.06.2016. u 14:31 - pre 25 meseci
Hajde ako je u pajtonu trivijalno, ko zna primer za pajton? Ne bih zalazio u rubi i perl.
Može čak i za PHP. Ja ne vidim elegantno rešenje nigde, a zanima me baš nešto elegantno.


Da li je uvreda budali reći da je budala?
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4472



Profil

icon Re: BASH, random testiranje više uslova, izlaz na prvom uspešnom.21.06.2016. u 16:20 - pre 25 meseci
Verovatno može kraće, ali ideja je:

Code:

import random

arr = [
        ( lambda: random.random() > 0.5,
            'foo'
            ),
        ( lambda: random.random() > 0.5,
            'bar'
            ),
        ( lambda: random.random() > 0.5,
            'baz'
            )
        ]

random.shuffle(arr)

for uslov, akcija in arr:
    if uslov():
        print(akcija)
        break


dosta zavisi u kom su ti obliku uslovi i akcije koje imaš, ali je ideja ta da imaš niz nečega (VOIP trankova npr), i svaki put ga promešaš pre nego što kreneš da iteriraš.

[Ovu poruku je menjao jablan dana 21.06.2016. u 17:34 GMT+1]
 
Odgovor na temu

Aleksandar Đokić

Član broj: 13478
Poruke: 4793
87.116.191.*



Profil

icon Re: BASH, random testiranje više uslova, izlaz na prvom uspešnom.21.06.2016. u 22:00 - pre 25 meseci
Ti bi da napravis load-balancing na tezi nacin, cemu to? Mislis da ce to raditi pouzdano?
 
Odgovor na temu

pisac

Član broj: 13046
Poruke: 4449



Profil

icon Re: BASH, random testiranje više uslova, izlaz na prvom uspešnom.22.06.2016. u 03:34 - pre 25 meseci
Ima i lakši način?
Da li je uvreda budali reći da je budala?
 
Odgovor na temu

[es] :: Skript jezici :: BASH, random testiranje više uslova, izlaz na prvom uspešnom.

[ Pregleda: 57290 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.