Cara Menetapkan Pemboleh ubah bash ke Nombor Rawak



Cuba Instrumen Kami Untuk Menghapuskan Masalah

Anda dapat dengan mudah menghasilkan nombor rawak pada bash prompt, yang kemudian anda boleh gunakan untuk menetapkan nombor tersebut sebagai pemboleh ubah. Ini berguna untuk semua perkara, mulai dari menulis jenis skrip tertentu hingga menjalankan petualangan permainan meja. Sama ada anda mungkin menulis kempen D&D atau mengarang utiliti dalam bahasa bash yang kuat, anda biasanya boleh melepaskan satu baris kod. Ini juga merupakan alat yang sangat berguna ketika cuba membuat pemeriksaan keselamatan tertentu, tetapi anda ingin ingat bahawa cracker yang baik dapat mengelakkan penjana nombor sederhana ini. Mereka masih berguna untuk menghasilkan jenis kata laluan dan kod tertentu, yang mungkin dapat membantu menjaga keselamatan.



Terdapat beberapa cara untuk menyelesaikannya, dan tidak setiap teknik sesuai untuk setiap situasi, jadi kami melakukan yang terbaik untuk melihat setiap cara dan mengujinya untuk memastikannya berjaya. Anda perlu bekerja dari terminal untuk ini, jadi gunakan Ctrl + Alt + T atau Super (Windows) + T untuk membuka terminal grafik, mulakan satu dengan menaip terminal di Dash, pilih dari Aplikasi atau Whisker dan menu Alat Alat atau menuju ke terminal maya dengan bersungguh-sungguh dengan menggunakan Ctrl, Alt dan kunci antara F1 dan F6.



Kaedah 1: Memilih Byte Rawak Penuh

Anda boleh menghasilkan nombor rawak antara 1 dan 256 dengan menjalankan perintah berikut terus dari prompt bash:



daripada -An -N1 -tu1 / dev / urandom

Walaupun kadangkala anda melihat arahan ini dirujuk ke / dev / random bukannya / dev / urandom, anda mungkin tidak mahu menjalankannya dengan cara ini. Ini secara tidak sengaja dapat merampas program lain daripada tidak dapat menggunakan penjana benih rawak semasa anda menggunakannya. Sebaik sahaja anda menjalankan program dan mendapat nombor, anda boleh yakin ia akan berfungsi dengan cara ini juga:



ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom)))

Ini akan menetapkan pemboleh ubah ranNum menjadi nombor antara 1 dan 256, dipilih pada masa anda menjalankannya. Anda boleh menjalankannya dari baris arahan atau dari dalam skrip dan ia harus berfungsi dengan baik. Perlu diingat bahawa anda boleh menggantikan ranNum dengan nama pemboleh ubah yang sah.

Kaedah 2: Menetapkan Pemboleh ubah kepada Nombor Rawak Antara 1 dan Apa sahaja

Anda boleh menjalankan echo $ [RANDOM% 40 + 1] dari baris arahan untuk menghantar nombor rawak antara 1 dan 40 terus ke output standard, tetapi anda juga boleh mengganti 40 dalam perintah dengan hampir sebarang nombor. Akhirnya, seni bina mesin hos anda akan kehabisan angka atau mungkin bash kehendak, tetapi anda pasti memerlukan jumlah yang tinggi pula.

Anggaplah anda ingin menghasilkan nombor rawak antara 1 dan 10 untuk konfigurasi pemboleh ubah anda. Anda boleh menjalankan:

ranNum = $ [RANDOM% 10 + 1]

Perlu diingat bahawa anda boleh mengganti 10 dengan apa pun nilai atas yang anda mahukan. Nilai ini adalah inklusif, yang bermaksud bahawa 10 adalah angka dikembalikan yang sah. Sekiranya anda ingin mengurangkannya satu, maka buatlah nilai 9 dan bukannya menggunakan matematik gaya C atau C ++ -1. Ini tidak diperlukan semasa menetapkan pemboleh ubah menggunakan kaedah ini, dan sebenarnya akan menghasilkan hasil yang tidak dijangka dengan menambahkan atau mengurangkan digit.

Kaedah 3: Memilih Bit Rawak Tunggal

Sekiranya anda perlu menetapkan pemboleh ubah ke bit rawak sama ada sifar atau satu, maka anda mungkin ingin mengubah kod sebelumnya seperti berikut:

ranNum = $ (($ (od -An -N1 -i / dev / urandom)% 2))

Kod ini akan menetapkan ranNum menjadi 1 atau 0 bergantung pada sama ada nombor yang diambil sampelnya dari / dev / urandom fail sama atau ganjil. Ini boleh berguna jika anda perlu menetapkan persamaan ya atau tidak yang mudah kepada satu atau keadaan yang lain.

Sekiranya ini tidak cukup rawak untuk apa yang sedang anda kerjakan, maka anda mungkin mendapat nombor yang sedikit lebih rawak dengan membuat panggilan ke direktori / proc / sys / kernel / rawak dengan:

ranNum = $ ((0x $ (cut -c1-1 / proc / sys / kernel / random / uuid)% 2))

Sekali lagi, ini hanya akan menetapkan pemboleh ubah menjadi 1 atau 0, yang sangat sesuai untuk logik binari tetapi tidak berguna pada masa-masa ketika anda mungkin memerlukan nombor yang lebih panjang. Namun, anda dapat menggunakan salah satu baris ini dalam skrip bash jika anda perlu melakukannya. Pilihan kedua ini sebenarnya lebih baik untuk situasi di mana yang pertama juga gagal

Kaedah 4: Mengarang Skrip bash untuk Mengembalikan Nombor Rawak

Sekiranya anda ingin mempunyai alat yang berguna untuk menghasilkan nombor rawak pada bila-bila masa, maka anda boleh membuat skrip baris perintah untuk melakukannya. Ini tidak menggunakan apa-apa selain bahasa bash standard yang terdapat pada kebanyakan permintaan Linux moden, jadi sebilangan besar pengedaran Linux moden dan sebilangan besar sistem operasi berasaskan BSD harus mengendalikannya dengan baik. Anda mungkin ingin menggunakan cd ~ / .local / bin sebelum melangkah lebih jauh untuk memastikan bahawa anda akan mempunyai skrip anda di tempat yang dapat anda laksanakan dari mana saja.

Ketik nano random atau vi random untuk memulakan, walaupun anda boleh menggunakan nama lain untuk skrip anda jika anda mahu. Anda juga boleh menggunakan editor teks lain jika anda mahu. Katakan anda ingin membuat yang akan mengembalikan 1 atau 0 ketika ditaip di baris arahan. Masukkan yang berikut dan tekan Ctrl + O untuk menyimpannya jika anda menggunakan nano:

#! / bin / bash ranNum = $ (($ RANDOM% 2)) gema $ ranNum

Ketik Ctrl + X untuk keluar dari editor teks dan sekali kembali di baris perintah gunakan chmod + x rawak untuk membuat skrip anda dapat digunakan. Anda tentu saja boleh menggunakan ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) atau baris lain sebagai ganti ranNum = $ (($ RANDOM% 2)) supaya anda dapat mengawal nombor yang anda mahukan dengan tepat. Katakan anda mahu memilih nombor antara 1 dan 50 secara berkala. Tukar teks skrip bash menjadi:

#! / bin / bash ranNum = $ [RANDOM% 50 + 1] echo $ ranNum

Anda kini boleh menjalankannya dengan mudah dari baris perintah dengan mengetik rawak setiap kali anda ingin menghasilkan nombor rawak.

4 minit membaca