GNU/Linux >> Tutoriels Linux >  >> Linux

Nombre aléatoire entre la plage dans le shell

Que diriez-vous d'utiliser les nanosecondes du temps système ?

date +%N

Ce n'est pas comme si vous aviez besoin de chiffres cryptographiquement utiles ici.

Selon la version de /bin/sh c'est le cas, vous pourrez peut-être faire :

$(( date +%N % 60 ))

S'il ne prend pas en charge le $(()) syntaxe, mais vous avez dc, vous pouvez essayer :

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

Sans savoir quel système d'exploitation, version de /bin/sh ou quels outils sont disponibles, il est difficile de trouver une solution garantie de fonctionner.


Si vous avez tr, head et /dev/urandom, vous pouvez écrire ceci :

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

Ensuite, vous devez utiliser l'opérateur de reste pour mettre dans la plage 0-60.


Avez-vous mal? Vous pouvez appeler la fonction rand() de awk. Par exemple :

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

Linux
  1. Comment augmenter le nombre d'inodes de disque sous Linux

  2. Calculer le nombre de jours avant le paiement ?

  3. Différence entre les appels système statvfs() et statfs() ?

  4. Script shell Linux pour la sauvegarde de la base de données

  5. Comment déterminer le numéro de la semaine du mois

Expression de séquence bash (plage)

Comment changer le shell par défaut dans le système Linux

Des moyens simples pour générer un mot de passe aléatoire sur Linux Shell

Détecter le système d'initialisation à l'aide du shell ?

Un guide sur la commande atop sous Linux

Comment garder Rocky Linux 8 à jour