Kadang-kadang, urang nuju program sababaraha skrip dina Bash …. sareng urang kedah (pikeun sababaraha alesan) ngahasilkeun sababaraha nomer acak.
Pikeun éta anjeun tiasa program sadayana aplikasi (atanapi fungsi ...) leres, tapi ... panasaran, sistem kami parantos ngalaksanakeun éta 😀
Dina terminal, ketik ieu sareng pencét [Lebetkeun]:
kamandang $ RANDOM
... angka bakal muncul, aranjeunna ngalakukeun sami sareng nomer anu sanés nembongan, sareng sajabina on
Anu dilakukeun nyaéta nunjukkeun anjeun nomer acak (naon waé) antara 0 sareng 32768 (integer, nyaéta, tanpa koma).
Upami anjeun peryogi janten angka acak, tapi antara 0 sareng ... hayu urang sebutkeun 100, anjeun tiasa nempatkeun wates éta 😀
gema $ (($ RANDOM% 100))
Sami, conto sanésna ... upami anjeun hoyong janten angka antara 0 sareng 29 éta bakal:
gema $ (($ RANDOM% 29))
Naha kahartos henteu? 😀
Upami aranjeunna bakal nganggo éta dina skrip bash anu dilakukeun, pikeun masihan nilai anu dihasilkeun (angka acak) kana variabel nyaéta:
VARIABLE = `gema $ (($ RANDOM))`
Sareng ieu ieu, kuring henteu terang ngeunaan anjeun ... tapi kuring terang yén éta bakal aya gunana pikeun kuring dina sababaraha waktos hahaha.
Wasalam
10 koméntar, tinggalkeun anjeun
Nya, kuring parantos nyobian na éta ngan ukur ngasilkeun nomer 4-angka, kumaha kuring tiasa ngajantenkeun langkung ageung?
Tip anu menarik pisan, hatur nuhun.
Ngahasilkeun angka antara 0 sareng 32768, kuring henteu acan tiasa kéngingkeun nomer anu langkung ageung.
sareng tiasa ngahasilkeun exadecimals ????
VARIABLE = `gema $ (($ RANDOM))`
Éta jalan tapi henteu optimal, ku alesan saderhana yén RANDOM mangrupikeun variabel sareng anjeun tiasa ngalakukeun:
variabel = $ RANDOM
sareng éta waé! entong lumpat kamandang dina aprte terminal (anu anjeun lakukeun)
Leres, jelas éta tiasa kahontal sapertos kieu… ngan bédana nyaéta engké, pikeun ningali jumlah anu nyandak variabelna (kumargi pangguna sanés tebak), kedah ngalakukeun kamandang…. sareng tungtungna, naon anu kuring lakukeun di dieu nyaéta ngan saukur ngalakukeun kamandang (supados pangguna tiasa ningali nomer anu dicandak) ti mimiti.
Naha kuring mastikeun sorangan? 🙂
Cara séjén pikeun ngahasilkeun angka acak, sanaos waktos ieu janten paréntah ieu:
tanggal "+% N" | motong -c 9
Éta bakal masihan kami tanggal dina nanodetik sareng 9 angka. Upami urang hoyong hiji digit, maka anjeun nempatkeun "cut -c 9" (digit terakhir sok langkung acak sabab éta anu pangleutikna tina nomer). Upami urang hoyong 2 inohong maka urang nempatkeun "motong - c 8,9". Upami urang hoyong tilu inohong maka "potong -c 7-9" (urang mimitian nganggo tanda hubung).
Hiji-hijina hal anu goréng ngeunaan ieu nyaéta upami urang hoyong kéngingkeun seueur nomer acak dina urutan dina waktos anu singget, sabab ieu mangrupikeun nomer acak dumasar kana tanggal sareng waktos na. Nyaéta, upami urang ngadamel pikeun paréntah éta urang tiasa ningali éta:
$ kanggo abdi dina `seq 1 1 500`; naha tanggal "+% N"; parantos
...
...
...
308311367
310807595
313273093
315725181
318186139
320671403
323360117
325733353
328335462
330694870
333259893
335858999
338375622
340798446
...
...
...
Jigana jelas jelas? Angka di kénca langkung mirip dina waktos anu pondok, tangtosna, sareng anu di belah katuhu langkung "acak".
mmm…. Abdi resep, kuring gaduh naskah mini, éta dicét pikeun ngahasilkeun nomer acak, hatur nuhun.
Éta ngalayanan .. sareng seueur ..
utamina upami anjeun nuju program antar muka dina bash nganggo kecap akses, kaamanan, jst, jsb, jst haha.
Aprote alus teuing.
Hello.
Mimiti, tangtosna, ucapan salamet dina halaman wéb anu saé ieu, anu kuring parantos lami nuturkeun.
Sareng anu kadua, ngadamel catetan alit pikeun entri ieu:
Nalika wates dilakukeun sapertos kieu:
gema $ (($ RANDOM% 10))
Sabenerna, anu anjeun pesenkeun pikeun juru éta nyaéta nomer anu dihasilkeun anjeun salawasna modulus% (sésana tina pembagian) tina angka salajengna, dina conto ieu, 10.
Jumlah naon waé anu dibagi 10 sanés moal masihan sésa anu langkung ageung tibatan pembagi éta nyalira.
Masalahna nyaéta yén éta moal masihan nomer anu sami ogé, kusabab pembagian ku 0 henteu logis pikeun juru.
Ieu ngandung harti yén kamandang $ (($ RANDOM% 10) bakal masihan hasil antara 0 sareng 9, tapi henteu pernah 10.
Solusi pikeun konflik ieu nyaéta nambihan hiji kana wates anjeun, sahingga jumlah anu sami aya dina kisaran acak.
gema $ (($ RANDOM% 11))
Ieu bakal masihan hasil antara 0 sareng 10.
Hiji salam.
Halo, kuring ngan ukur ngawangun sapertos kieu, tapi kuring ngagaduhan masalah.
Abdi hoyong ngadamel 6 angka béda ti 00 ka 45 tapi teu ngulang aranjeunna.
gema $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $($RANDOM%46)) $(($RANDOM%46)) $($ Acak%46))
EX: 17 33 16 36 45 27