#!/bin/bash
# Licence GPL
# Copyleft 2005 Thierry Bazzanella
function OuiNon {
local qst def rep
qst="${1:-'Oui ou Non ? '}"
def="$2"
while :
do
read -p "$qst" rep || exit 1
case "$(echo "${rep:-$def}" | tr '[a-z]' '[A-Z]')" in
O|OUI|Y|YES) return 0 ;;
N|NON|NO) return 1 ;;
"" ) : ;;
*) echo "Reponse invalide: $rep" ;;
esac
done
}
# avec un parametre
function tafonction {
echo "$1 Visiteur !"
return 7 # de 0 a 255 max
}
# Appel de ta fonction
tafonction "Coucou"
#Recuperation d'un code de retour de tafonction:
# doit etre declaree de suite apres l'appel de tafonction
CODERETOUR_TAFONCTION=$( echo $? )
VALEURRETOUR_TAFONCTION=$( tafonction "et bien" )
#Recuperation de la valeur du parametre
# Retourne par tafonction
# dans ton programme principal:
echo "Une autre valeur de retour est : $VALEURRETOUR_TAFONCTION"
echo "Le code de retour est $CODERETOUR_TAFONCTION"
# Avec echo cequetuveux dans tafonction te permet de recuperer
# une valeur quelconque sur l'entree standard
# Par contre le return 7 te permet de recuperer un code de retour numerique
# tu peux donc avec ces elements faire une fonction OuiNon de ton code
# et declarer le code de cette fonction une seule fois au debut
# de ton programme et l'appeler autant de fois que necessaire.
if OuiNon "Etes-vous favorable a l'utilisation des fonctions ? votre reponse => " Oui
then echo "OK, vous etes favorable. Vous gagnerez en efficacite"
else echo "Ok, vous n'etes pas favorable. Bonjour la maintenance du code !"
fi
if OuiNon "Etes-vous favorable a l'utilisation de GNU/Linux ? votre reponse => " Oui
then echo "OK, vous etes favorable. Vous gagnerez en efficacite"
else echo "Ok, vous n'etes pas favorable. Vous preferez ce bon vieux CP/M !"
fi
Ajouter un commentaire