60 lines
1.8 KiB
Bash
Executable File
60 lines
1.8 KiB
Bash
Executable File
#!/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
|