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 :

Mon script n'entre pas dans mon CASE


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2017
    Messages : 53
    Par défaut Mon script n'entre pas dans mon CASE
    Bonjour,

    J'essaie de créer un script .sh et une partie de script rman pour pouvoir faire mes sauvegardes dans un premier temps.
    J'ai rajouté plein d'écho dans mon script sh et je vois qu'il n'arrive pas à rentrer dans mon case ou je fait l'appel à toute mes fonctions

    Script sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    function get_oracle_sids ()
    {
    local spfiles=("$ORACLE_HOME"/dbs/spfile*.ora)
    echo "Récupération des spfiles: $spfiles"
    local filename=""
    for file in "${spfiles[@]}"
    do
      filename="${file##*/}"
      echo "Filename de la fonction get_oracle_sids : $filename"
      oracle_sids+=( $(basename "${filename#spfile}" ".ora") )
      echo "Oracle_sids fonciton get_oracle: ${!oracle_sids[*]} "
    done
    }
     
    function get_status ()
    {
    for sid in "${oracle_sids[@]}"
    do
    echo "Oracle_sid fonction get_status: ${oracle_sids[@]}"
      export ORACLE_SID="$sid"
      $ORACLE_HOME/bin/sqlplus -s -L '/ as sysdba' << EOF
    PROMPT ================= Statut de la base $sid ==================
    SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V\$INSTANCE;
    PROMPT      Statut des PDBs de la base $sid
    show pdbs;
    PROMPT _______________________________________________________________
    EOF
    done
    }
     
    function startup ()
    ....
     
     
    function shutdown ()
    ...
     
    function backup ()
    .....
     
    function main ()
    {
    # chargement de la configuration
    CONFIG_FILE=/monappli/$(basename "$0" ".sh").conf
    echo "Fichier de configuration :  $CONFIG_FILE"
    [[ -f "$CONFIG_FILE" ]] && source "$CONFIG_FILE" || {
      echo "Fichier de configuration introuvable"
      exit 1
    }
     
    # récupération des ORACLE_SID
    oracle_sids=()
    echo "oracle_sid $oracle_sids"
    get_oracle_sids
    echo "Lancement fonction get_oracle_sids"
    [[ -z $oracle_sids ]] && {
      echo "Oracle SIDS dans la condition pour la fonction statut $oracle_sids"
      echo "Impossible de déterminer un ORACLE_SID"
      exit 1
    }
     
    while :
    do
    echo "On rentre dans l'exécution de toutes les fonctions"
    echo "valeur du case  : $1"
      case "$1" in
         status)
          echo "On est dans la fonciton statut"
          get_status
          ;;
        start)
          echo "On est dans la fonction startup"
          startup
          ;;
        stop)
          echo "On est dans la fonction stop"
          shutdown
    ....
    Affichage de mes echos :
    • On est sorti du main
    • Fichier de configuration : /mon appli_conf/sauvegarde_bdd_oracle.conf
    • oracle_sid
    • Récupération des spfiles: /exec/oracle/product/12.2.0.1/db/dbs/spfileXXXXX.ora
    • Filename de la fonction get_oracle_sids : spfileXXXXX.ora
    • Oracle_sids fonciton get_oracle: 0
    • Filename de la fonction get_oracle_sids : spfileXXXXX.ora
    • Oracle_sids fonciton get_oracle: 0 1
    • Filename de la fonction get_oracle_sids : spfileXXXXX.ora
    • Oracle_sids fonciton get_oracle: 0 1 2
    • Lancement fonction get_oracle_sids
    • On rentre dans l'exécution de toutes les fonctions
    • valeur du case :




    Quelqu'un aurait une idée car je ne comprend pas

    Merci à tous par avance

  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,

    tu passes un paramètre à ton script ? Comment exécutes-tu ton script ?

    PS : function et () sont redondants.
    ce n'est pas une erreur, mais c'est inutile de mettre les deux..
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2017
    Messages : 53
    Par défaut
    merci problème résolu

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

Discussions similaires

  1. code n'entre pas dans les boucles if
    Par ahmednaess dans le forum C
    Réponses: 10
    Dernier message: 16/05/2013, 15h01
  2. Script ne fonctionne pas dans le head
    Par typiac dans le forum jQuery
    Réponses: 2
    Dernier message: 10/07/2012, 10h51
  3. [PHP 5.3] Je n'entre pas dans le else
    Par beegees dans le forum Langage
    Réponses: 5
    Dernier message: 25/01/2012, 17h56
  4. Requete SQL BETWEEN fonctionne dans le bash mais pas dans mon script?
    Par ssc37 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 09/03/2009, 11h01
  5. Réponses: 1
    Dernier message: 10/10/2008, 22h50

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