Bash::generateur de lettres aleatoires
novembre 5, 2007
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.
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