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 :

Problème CASE shell


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Par défaut Problème CASE shell
    bonjour à tous,

    je débute en shell et j'ai un soucis lorsque j'execute ce script, il me retourne : newline or ; unexpected.
    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
    	# Fichiers
    	test_vide=`ls $import | wc -l`
    	if [ $test_vide -ne 0 ] 
    	then
    	fichier_actuel=`basename $fich`;
     
    	case $fichier_actuel in 
        $import/*.ctl) 
           sqlplus -s apps/$password <<FIN
    		SET SERVEROUTPUT ON
    		BEGIN
    		XX_OCERP_PKG.add_source('$fichier_actuel','CTL','$import');
    		END;
    		/
    FIN
            ;; 
        $import/*.txt) 
            sqlplus -s apps/$password <<FIN
    		SET SERVEROUTPUT ON
    		BEGIN
    		XX_OCERP_PKG.add_source('$fichier_actuel','FORMS','$import'); 
    		END;
    		/
    FIN
    		;;
    	$import/*.sql) 
            sqlplus -s apps/$password <<FIN
    		SET SERVEROUTPUT ON
    		BEGIN
    		XX_OCERP_PKG.add_source('$fichier_actuel','SQL','$import'); 
    		END;
    		/
    FIN
    	$import/*.rex) 
            sqlplus -s apps/$password <<FIN
    		SET SERVEROUTPUT ON
    		BEGIN
    		XX_OCERP_PKG.add_source('$fichier_actuel','REPORTS','$import'); 
    		END;
    		/
    FIN
    		;;
    	$import/*.pld) 
            sqlplus -s apps/$password <<FIN
    		SET SERVEROUTPUT ON
    		BEGIN
    		XX_OCERP_PKG.add_source('$fichier_actuel','PLD','$import'); 
    		END;
    		/
    FIN
     
            ;;] 
     
    esac
    merci de votre aide

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

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

    • il y a un crochet fermant en trop avent le escca.
    • le mot terminant un document en ligne doit être sur la première colonne du fichier.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Par défaut
    merci mais le problème est toujours le même.


    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    • le mot terminant un document en ligne doit être sur la première colonne du fichier.

    c'est à dire ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 662
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cat <<eot
         bla
         bla
    eot
    ^--- première colonne
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Par défaut
    toujours pareil

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 350
    Par défaut
    Bonjour,

    Il manque ';;' entre 2 condition du case (ligne 34 du post).

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    • il y a un crochet fermant en trop avent le escca.
    • le mot terminant un document en ligne doit être sur la première colonne du fichier.
    De plus, je crois qu'il manque un "fi" pour fermer le "if".

  8. #8
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Par défaut
    effectivement. merci.

    mais j'ai toujours l'erreur 'newline or ; unexpected' ligne 54

    la ligne 54 est celle de ' $import/*.ctl) ' (ligne 8 ici)

  9. #9
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Il manque aussi un ;; avant le cas $import/*.rex)
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  10. #10
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Par défaut
    merci mais aucun changement, toujours la même erreur

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Sémantiquement parlant, il est pour le moins très surprenant de mettre le basename de $fich dans fich_actuel puis de comparer ce basename avec $import/*.ctl


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	fichier_actuel=`basename $fich`;
     
    	case $fichier_actuel in 
        $import/*.ctl)
    Apparemment, seule l'extension compte. Donc plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	fichier_actuel=`basename $fich`;
            ext=${fichier_actuel##*.}
     
    	case "$ext" in 
        ctl)
    etc.

    Peux-tu renvoyer la version courante du script et les erreurs?

  12. #12
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Par défaut
    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
    # Fichiers
    test_vide=`ls $import | wc -l`
    if [ $test_vide -ne 0 ] 
    then
    fichier_actuel=`basename $fich`;
    ext=${fichier_actuel##*.}
     
    	case "$ext" in  
        ctl) 
    		   sqlplus -s apps/$password <<FIN
    			SET SERVEROUTPUT ON
    			BEGIN
    			XX_OCERP_PKG.add_source('$fichier_actuel','CTL','$import');
    			END;
    			/
    FIN
            ;; 
        txt) 
            sqlplus -s apps/$password <<FIN
    			SET SERVEROUTPUT ON
    			BEGIN
    			XX_OCERP_PKG.add_source('$fichier_actuel','FORMS','$import'); 
    			END;
    			/
    FIN
    		;;
    	sql) 
            sqlplus -s apps/$password <<FIN
    			SET SERVEROUTPUT ON
    			BEGIN
    			XX_OCERP_PKG.add_source('$fichier_actuel','SQL','$import'); 
    			END;
    			/
    FIN
    		;;
    	rex) 
            sqlplus -s apps/$password <<FIN
    			SET SERVEROUTPUT ON
    			BEGIN
    			XX_OCERP_PKG.add_source('$fichier_actuel','REPORTS','$import'); 
    			END;
    			/
    FIN
    		;;
    	pld) 
            sqlplus -s apps/$password <<FIN
    			SET SERVEROUTPUT ON
    			BEGIN
    			XX_OCERP_PKG.add_source('$fichier_actuel','PLD','$import'); 
    			END;
    			/
    FIN
    		;; 
    esac
    fi
    et toujours la même erreur ==> IMPORT3.sh: syntax error at line 55: `newline or ;' unexpected
    la ligne 55 correspondans au "ctl)"

Discussions similaires

  1. problème commande shell compilation auto
    Par ludovic85 dans le forum C#
    Réponses: 1
    Dernier message: 07/02/2007, 12h28
  2. Problème commandes shell-trop d'arguments
    Par SuperCed dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 22/12/2006, 12h57
  3. Problème avec SHELL
    Par Jasgui dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/09/2006, 19h14
  4. Problème cases à cocher avec connection Mysql
    Par cams dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 01/12/2005, 14h13
  5. []Problème de SHELL
    Par laurentfrancis dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2005, 19h41

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