GNU/Linux >> Belajar Linux >  >> Linux

Angka acak antara rentang di shell

Bagaimana dengan menggunakan nanodetik waktu sistem?

date +%N

Bukannya Anda membutuhkan nomor yang berguna secara kriptografis di sini.

Bergantung pada versi /bin/sh yang mana itu, Anda mungkin dapat melakukan:

$(( date +%N % 60 ))

Jika tidak mendukung $(()) sintaks, tetapi Anda memiliki dc, Anda dapat mencoba:

dc -e `date +%N`' 60 % p'

Tanpa mengetahui sistem operasi yang mana, versi /bin/sh atau alat apa yang tersedia, sulit menemukan solusi yang dijamin berhasil.


Jika Anda memiliki tr, head dan /dev/urandom, Anda dapat menulis ini:

tr -cd 0-9 </dev/urandom | head -c 3

Maka Anda harus menggunakan operator sisa untuk memasukkan rentang 0-60.


Kamu punya awk? Anda dapat memanggil fungsi rand() awk. Misalnya:

awk 'BEGIN { printf("%d\n",rand()*60)  }' < /dev/null

Linux
  1. Simbol Backtick (`) di Linux Shell Scripting

  2. Skrip shell Linux untuk cadangan basis data

  3. Perbedaan antara '{}' dan {} dalam perintah find?

  1. Cara Menambah Nomor Disk Inode di Linux

  2. Cara menentukan jumlah minggu dalam sebulan

  3. Menambahkan entropi nomor acak untuk kunci GPG?

  1. Perbedaan Antara Shell Login dan Shell Non-login?

  2. Deteksi Sistem Init Menggunakan Shell?

  3. Hitung Jumlah Hari Untuk Pembayaran?