Kezdőoldal » Számítástechnika » Programozás » BASH (Bourne Again Shell)...

BASH (Bourne Again Shell) Random függvény, hogyan?

Figyelt kérdés

Sziasztok!

Szeretném megkérdezni a profikat!

van pl 10 db függvényem!

Hogyan tudom megcsinálni hogy ebből a 10-ből véletlenszerűen futtassa le a script a függvényeket?

Esetleg még azt hogy ha mind a 10 lefutott akkor lépjen ki.


2011. ápr. 8. 16:37
1 2
 1/11 anonim ***** válasza:

Igazából leírtad már, hogy kéne.

Most mondtad, van 10 darab függvényed, randomizálsz egy számot, ezekből kéne választani. Többszörös elágaztatás aka. case.

Azt meg tárold el, hogy melyik futott már le, és ha már mind lefutott akkor kilépsz.


Azt hiszem, ha leírok halálpontosan mindent, nem segítek neked.

2011. ápr. 8. 17:53
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:

De nem tudom használni a random függvényt...ez itt a gond :)

Azt hiszem $RANDOM a neve, de ebben sem vagyok biztos!

Segítenél?

2011. ápr. 8. 18:04
 3/11 anonim ***** válasza:

A random függvény egy 0 és egy 1 közötti számot köp ki, bár 1-et sosem adhat. Felszorzod tízzel, veszed az egészrészét, így a számok 0 és 9 között változhatnak. Beteszed egy változóba, legyen ez r. Ezután csinálsz egy elágaztatást, amiben felsorolod az egyes lehetőségeket:


case r=0 f0 break;

case r=1 f1 break;

...


a függvényeket meg megírod külön.

2011. ápr. 8. 18:23
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:
Köszönöm szépen!
2011. ápr. 8. 18:30
 5/11 anonim ***** válasza:

googlebe: bash random

A case meg úgy nem fog menni, nem az a szintaxisa.

2011. ápr. 9. 10:19
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

case $(($RANDOM*9/32767)) in

0*) f0;;

1*) f1;;

...

9*) f9;;

*) echo "Gáz van, egyest kapok a feladatra!";;

esac

2011. ápr. 11. 13:58
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:
A fenti persze csak a case szintaxisához. Amúgy nem világos, hogy csak egyszer futhat-e minden függvény, úgyhogy a teljes feladatot nem oldottam meg.
2011. ápr. 11. 14:04
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:

Na jó, a könnyebbik végén fogva meg a dolgot, azaz ha egy függvény többször is futhat:

fuggvenyek="0123456789"

while [ ! "x$fuggvenyek" = "x" ]; do

let "a = $RANDOM * 9 / 32767"

case $a in

0*) f0; fuggvenyek=${fuggvenyek/$a/};;

1*) f1; fuggvenyek=${fuggvenyek/$a/};;

2*) f2; fuggvenyek=${fuggvenyek/$a/};;

...

9*) echo $a; fuggvenyek=${fuggvenyek/$a/};;

*) echo "Gáz van, egyes!"; exit 1;;

esac

done

2011. ápr. 11. 14:15
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:

Bocs, a 9*) sor helyesen:

9*) f9; fuggvenyek=${fuggvenyek/$a/};

2011. ápr. 11. 14:18
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:

Vagy egy másik megközelítés, de 2 db függvénnyel, az egyszerűség kedvéért:


nulladikfuggveny () {

echo "nulladik fuggveny fut"

}

elsofuggveny () {

echo "elso fuggveny fut"

}

f[0]="nulladikfuggveny"

f[1]="elsofuggveny"

fuggvenyek="01"

while [ ! "x$fuggvenyek" = "x" ]; do

let "a = $RANDOM * 2 / 32767"

${f[$a]}

fuggvenyek=${fuggvenyek/$a/}

done

2011. ápr. 11. 14:35
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!