GNU/Linux >> Znalost Linux >  >> Linux

Náhodné číslo mezi rozsahem v shellu

Co takhle využít nanosekundy systémového času?

date +%N

Není to tak, že byste zde potřebovali kryptograficky užitečná čísla.

V závislosti na verzi /bin/sh ano, možná budete schopni:

$(( date +%N % 60))

Pokud nepodporuje $(()) syntaxi, ale máte dc, můžete zkusit:

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

Aniž byste věděli, který operační systém, verze /bin/sh nebo jaké nástroje jsou k dispozici, je těžké přijít s řešením, které bude zaručeně fungovat.


Pokud máte tr, head a /dev/urandom, můžete napsat toto:

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

Potom musíte použít operátor zbytku k zadání rozsahu 0-60.


Máte awk? Můžete zavolat funkci rand() awk. Například:

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

Linux
  1. Rozdíl mezi přihlašovacím prostředím a nepřihlašovacím prostředím?

  2. Zjistit iniciační systém pomocí Shell?

  3. Spočítat počet dní do platby?

  1. Symbol backtick (`) v Linux Shell Scripting

  2. zkontrolujte, zda je argument platným datem v bash shellu

  3. Najděte soubory vytvořené v určitém časovém období

  1. Rozdíl mezi '{}' a {} v příkazu find?

  2. Jak určit počet týdnů v měsíci

  3. Přidání entropie náhodných čísel pro klíče GPG?