Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/02/2010, à 23:43

kaci

script/ apprentissage

Bonsoir,

je viens de mettre au point un script à partir d'un exercice que je trouve dans le livre "Unix shell programming". nJ'en suis au chapitre 9.
Sincèrement, je n'arrive pas à assimiler la commande getopts avec notamment les rôles de " erropt" OPTARG et OPTIND.
Si quelqu'un peut me donner un coup de main surtout au niveau pédagogique.
Me dire où sont mes erruers et surtout pourquoi.
voici le script:

#! /bin/sh
# nom du fichier: delogged.sh

# #####valeurs des options

mailopt=FALSE
remopt=FALSE
logopt=FALSE
interval=600

# ####processus des commandes  #####

while getopts nfmt: option
do
    case $option in
          m) mailopt=TRUE;;
          t) interval=600;;
          f) remopt=TRUE;;
          n) logopt=$OPTARG;;
          \?) echo " usage [-m] [-t n] [-f] [ -n] $user "
              echo " -m means mail -f means files removed -n if logged user -t n periodic time"
          exit 1 ;;
     esac

done

#################  On doit spécifier un nom d'utlisateur#### # Make sure a user name was specified
              if [ "$OPTIND" -gt "$#" ]; then
              echo "Missing user name!"
              exit 2
              fi
              shifcount=$((OPTIND - 1))
              shift $shifcount
              user=$1

####### alerter quand il se deconnecte###############
   until ! who | grep -v "^$user" > /dev/null
   do
   sleep 600
   done
#### file removed ############### fichier supprimés################
file=$2
   if [ ! -e $file ]; then
   echo " the file is removed"
   else
   echo "not removed"
   fi
   
###################### le signaler si oui il se delogge##############

if [ $logopt = FALSE ]; then
echo " he delogged"
elif
if [ $remopt = FALSE ]; then
echo " the file is removed"
else        runner=$(who am i | cut -c1-8)
       echo "$user has delogged " | mail $runner
fi
exit 2
# fin du script

#####################################################################
#BUT DU SCRIPT
Le script est censé m'envoyer un mail quand un utilisateur se déconnecte me donne la réponse  si oui ou non un fichier a été supprimé et tourner toutes les 10 mn ( 600) secondes.
Je compte vraiment sur cette aide car ç a me bloque dans ma progression.

Merci d'avance.

Dernière modification par Kanor (Le 11/02/2010, à 00:49)

Hors ligne

#2 Le 10/02/2010, à 23:44

sputnick

Re : script/ apprentissage

Merci d'utiliser les balises codes, en l'état c'est pas tres lisible


Je sais, un peu partout, tout le monde s'entretue, c'est pas gai, mais d'autres s'entrevivent, j'irai les retrouver. Jacques Prévert
https://sputnick.fr

Hors ligne

#3 Le 10/02/2010, à 23:49

kaci

Re : script/ apprentissage

sputnick a écrit :

Merci d'utiliser les balises codes, en l'état c'est pas tres lisible

Bsr,
Est-ce bon à présent?
merci

Hors ligne

#4 Le 10/02/2010, à 23:54

sputnick

Re : script/ apprentissage

Non


Je sais, un peu partout, tout le monde s'entretue, c'est pas gai, mais d'autres s'entrevivent, j'irai les retrouver. Jacques Prévert
https://sputnick.fr

Hors ligne

#5 Le 11/02/2010, à 00:23

AnsuzPeorth

Re : script/ apprentissage

kaci a écrit :
sputnick a écrit :

Merci d'utiliser les balises codes, en l'état c'est pas tres lisible

Bsr,
Est-ce bon à présent?
merci

Sputnick demande que tu entoure ton code de balises code. Tu selectionnes la partie de code voulus (il sera en surbrillance) puis tu clic sur le petit bouton Code au dessus de la zone de saisi du message.(dessus les smileys).

Sinon, une explication pour getopts
http://abs.traduc.org/abs-5.3-fr/ch14.html#getoptsx


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#6 Le 11/02/2010, à 00:28

kaci

Re : script/ apprentissage

AnsuzPeorth a écrit :
kaci a écrit :
sputnick a écrit :

Merci d'utiliser les balises codes, en l'état c'est pas tres lisible

Bsr,
Est-ce bon à présent?
merci

Sputnick demande que tu entoure ton code de balises code. Tu selectionnes la partie de code voulus (il sera en surbrillance) puis tu clic sur le petit bouton Code au dessus de la zone de saisi du message.(dessus les smileys).

Sinon, une explication pour getopts
http://abs.traduc.org/abs-5.3-fr/ch14.html#getoptsx

merci
je galère dessus. c'est plus possible.

Hors ligne

#7 Le 11/02/2010, à 00:50

Kanor

Re : script/ apprentissage

Je vous conseil de lire ce document pour bien utiliser les balises sur ce forum
http://forum.ubuntu-fr.org/help.php#bbcode

Hors ligne

#8 Le 11/02/2010, à 09:32

kaci

Re : script/ apprentissage

Kanor a écrit :

Je vous conseil de lire ce document pour bien utiliser les balises sur ce forum
http://forum.ubuntu-fr.org/help.php#bbcode

Merci.

Hors ligne

#9 Le 11/02/2010, à 11:05

sputnick

Re : script/ apprentissage

kaci a écrit :

Bonsoir,
Me dire où sont mes erreurs et surtout pourquoi.

Ben non, dit nous plutôt ce que tu attends, quel résultat tu obtient. Si tu veux que se soit rapide et que tu souhaite une formation, je te donnerais mon paypal.
Dans man getopts tu trouvera la réponse à toutes tes questions. OPTARG c'est l'argument donné à une option. OPTIND perso je n'en n'ai jamais eu vraiment besoin. Tu devrais oublier cette variable pour le moment, le jour ou tu en aura besoin, tu sais où la trouver.

++


Je sais, un peu partout, tout le monde s'entretue, c'est pas gai, mais d'autres s'entrevivent, j'irai les retrouver. Jacques Prévert
https://sputnick.fr

Hors ligne

#10 Le 11/02/2010, à 21:11

kaci

Re : script/ apprentissage

Merci pb résolu.

En fait, je viens des lettres et sciences humaines et j'ai été très haut, et même enseignant.  Ca me prend un temps fou, la réapropriation de la logique mathématique. Mais dans l'ensemble ça. Merci en tout cas. Je viens de finir le chapitre 10 avec tous les exo.

Hors ligne