IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

FPATH définie dans .bashrc, fonction «introuvable»


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut FPATH définie dans .bashrc, fonction «introuvable»
    Env: CentOS-6.5 64 bits
    serveur de test: applicatif oracle

    Bonjour:
    le contexte est le suivant:
    dans le fichiers .bashrc définition de alias: autoload définis sur typeset -fu
    definition du FPATH=/root/bin/bib_functions
    avec en visuel sur la capture (comme vous pouvez voir :les 2 fonctions (netlog, supprlog ) dans la 2iem fenêtres du bas

    et mon script d'appel à ses fonctions :visuLogoracle.sh ( comme vous le voyez dans la 1er fenêtre du haut; avec la trace activé me retourne
    netlog "commande introuvable.
    supprlog "commande introuvable.

    là je ne comprend pas, puisque mes fonctions sont sources, donc visible par mon script d'appel.
    je ne vois pas où cela bloque.

    si une personne avec un œil avertis, pouvais me donner une solution;
    puisque avec des sources, et des autoload , j'ai toujours l'erreur
    merci a tous coup de main, pour se serveur de test applicatif.

    Cordialement
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Bonjour,

    FPATH n'est pas une variable utilisée par bash, mais par ksh.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut
    re Bonjour;

    et Merci à N_Bah pour sa participation.

    après cette information donnée par N_Bah; je me suis inspiré du post de Geral B. (bashdb)

    qui en fait a sourcé ses fonctions dans son script d'appel

    les essais de mon côté, ne sont pas concluants.

    effectivement j'ai aussi sourcé les 2 fonctions dans mon script d'appel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     source $FPATH/netlog
               source $FPATH/supprlog
    malheureusement, il me met toujours cette erreur " du type qu'il ne voit pas mes fonctions"

    comme vous pouvez le voir sur cette capture d'écran.

    et pourtant mon FPATH:/root/bin/bib_functions est bien visible par un echo $FPATH

    il y a quelque chose qui m'échappe dans les déclarations en bash.

    vraiment merci à tous coup mains; et directives
    Images attachées Images attachées  

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    mais qu'y a-t-il dans les fichiers net/supprlog ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat > mes_Fonctions
    f_1() { echo $FUNCNAME;}
    f_2() { echo "$FUNCNAME aussi";}
    ^D
    $ source ./mes_Fonctions
    $ f_1
    f_1
    $ f_2
    f_2 aussi
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut
    rebonjour

    et merci de ton exemple sur lequel, je me suis inspiré surtout quand tu écris " source ./mes_Fonctions

    mais apres un éssais; j'ai encore se type d'erreur.

    scénario de netlog est tres basique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     netlog() {
    set -uvx
    printf "Nettoyage faite par :%s:" "$FUNCNAME"
    printf "Il y a :%s:Fichiers à supprimés...!!!!" "$CPT_OLD_LOG" >> $ORACLE_LOG
    find /var/log/oracle/* -type f -atime +1 -exec mv -t $SUPPR_OLD_LOG {} \; -print
    }
    simple mv de fichiers dans un repertoire $SUPPR_OLD_LOG; suivant ce que find trouve, en fonction du -atime +1 ( tres basique comme action )

    scénario de supprlog est aussi basique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    supprlog() {
    set -uvx
     for old_log in `ls -l $SUPPR_OLD_LOG`
      printf " Action de :%s: Il y a: %s : Fichiers supprimés\n" "$0" "$CPT_OLD_LOG"
       do
      /bin/rm -f $old_log | printf "Fichier :%s: supprimé\n" "$old_log" >> "$ORACLE_LOG"
    done
    }
    de meme, pour supprlog, qui lui supprime a des moments précis les logs que j'ai préfixé avec la date, et l'heure ( la raison, est que je dois les gardés pour analyse) dans
    le répertoire $UPPR_OLD_LOG
    ma foie; 2 appels de fonctions par mon script principal qui ne veulent pas s'exécutés.
    --->suivant les captures d'écrans que tu as pu voir.
    et je mets bien, la même syntaxe que toi au moment de le sourcer
    merci de ta lumière.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    tu sources bien le fichier des fonctions dans le script principal, n'est-ce pas ? car les scripts ne lisent pas ~/.bashrc.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] Fonction non définie dans l'expression
    Par DREADY dans le forum VBA Access
    Réponses: 17
    Dernier message: 08/03/2007, 16h49
  2. Réponses: 3
    Dernier message: 12/02/2007, 03h14
  3. fonction introuvable dans la dll ?
    Par FamiDoo dans le forum C++
    Réponses: 5
    Dernier message: 22/06/2006, 16h33
  4. Réponses: 2
    Dernier message: 01/06/2006, 14h54
  5. Utilisation fonction définie dans un .Dll
    Par jeab. dans le forum Windows
    Réponses: 5
    Dernier message: 23/03/2004, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo