#!/bin/bash # fichier : ploumploum.sh # Auteur : moi-meme #=============== Declaration des fonctions # alea N alea() { return $((($RANDOM % $1)+1)) } # selecteur P arg1 arg2 ... argN # affiche l'argument de position P (1 a N) selecteur(){ local rang=$1 # numéro de la position de l'argument a selectionner shift # supprime le premier argument de la liste des arguments shift $(($rang - 1)) # supprime les P-1 premiers arguments de la liste echo "$1" } selecteurboucle(){ local rang=$1 # numéro de la position de l'argument a selectionner local iter=1 # sera le numero d'iteration dans la boucle # et donne ainsi le rang courant dans la liste des arguments shift # supprime le premier argument de la liste des arguments for item in "$@" ; do # iteration sur la liste des arguments if [ $iter -eq $rang ] then # on a atteint le rang recherche ? echo "$item" return # Arret de la fonction fi iter=$(($iter + 1)) #Mise a jour du nombre d iterations done } selecteurredir(){ local rang=$1 # numéro de la position de l'argument a selectionner shift # supprime le premier argument de la liste des arguments echo "${!rang}" } #=============== Corps du script # le nombre d'arguments donnes est $# if [ $# -eq 0 ] ; then echo "ERREUR: la liste de choix est vide" >&2 exit 1 fi # $# ne doit pas depasser 12 if [ $# -gt 12 ] ; then echo "ERREUR: la liste de choix contient plus de 12 elements" >&2 exit 1 fi # on veut un nombre aleatoire entre 1 et $# alea $# # le nombre aleatoire est rendu par $? (c'est le resultat de la derniere commande) # selection et affichage de l'argument qui se trouve sur cette position selecteur $? "$@" # That's all folks