Plus précisément, un générateur de ‘mot’ de n lettres. Je l’ai pondu pour obtenir une liste de mots aléatoires nécessaire à un projet.

Pour fonctionner il utilise principalement:
$RANDOM : renvoi un entier compris entre 0 et 32767
$(( EXPR )) : in interpréteur mathématique intégré au bash
${#VAR}: renvoi le nombre de caractères dans une chaîne bash (le length du bash)
${VAR:P:N} : renvoi une sous chaîne de la chaîne VAR qui commence au P ième caractère et de longueur N (substr du bash).

Il s’agit donc d’un petit concentré des essentiels du bash.

gen_word.sh [le nombre de lettres, 10 par défaut]

#!/bin/bash

N_LETTRES=10

if [ "$1" != "" ]
then
N_LETTRES=$1
fi

ALPHA=’abcdefghijklmnopqrstuvwxyz’;

MOT=”"
for ((i = 0; i < $N_LETTRES; i += 1))
do
CHIFFRE=$(( $RANDOM % ${#ALPHA}));
printf ${ALPHA:$CHIFFRE:1};
done
printf “\n”
exit 0

Mod : la commande exit permet de terminer le processus.

un exit 0 en fin de script c’est un fin de processus correct et des exit 1,2,3 etc… pour stopper le
script avec erreur.

Une réponse vers “Bash::generateur de lettres aleatoires”

  1. sylvainulg a dit

    vouip. j’ai bien fait quelques petits outils comme ça puis j’ai fini par laisser tomber et passer au Perl (peut-être me manquait-il un bon bouquin sur bash ?)

    Ceci dit, tu as un bon truc pour provoquer l’arrêt immédiat d’un script de ce genre? style “teste si le fichier existe, sinon annule tout” ?

    Le mieux que je me souvienne en la matière, ce sont les “goto error” du DOS :-/

Laisser un commentaire