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

Linux Discussion :

Script shell et fin de fichier


Sujet :

Linux

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut Script shell et fin de fichier
    salut
    j'ai un probleme avec un script shell qui doit faire un import cvs
    apparement il ne trouve pas la fin du fichier mias je en vois pas pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/sh
    export  HOME=/home/users/web/travail
    export  CVSROOT=/opt/appli/cvs2
    export  PATH=/usr/local/cvs/bin/:$PATH
    chemin=/opt/appli/web/dev/htdocs/users/$1/migration/$3/$2
    while !(test -e /opt/appli/web/dev/htdocs/users/$1/migration/$3/$2);do
       mkdir /opt/appli/web/dev/htdocs/users/$1/migration/$3/$2
    done
    cd /opt/appli/web/dev/htdocs/users/$1/migration/$3/$2
    # Récupération de la version HEAD du module
    cvs -d :pserver:web:web123@linux027:/opt/appli/cvs2 checkout -P -r $2
    merci

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 445
    Points
    3 445
    Par défaut
    Salut, la syntaxe du while ça n'est pas plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while condition
    do
       traitement
    done
    ? Tu as mit un point virgule suspect..

  3. #3
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    pourquoi utiliser cd ?
    c'est moche.

    je suis sûr qu'il existe un paramètre pour cvs qui indique où doivent être téléchargés les fichiers.

    A noter que tu déclares $chemin et que tu ne l'utilises pas du tout.

    Simplifie ton programme, tu y verras plus clair.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    pour la syntaxe je crois (mais alors la pas sur) que tu peut mettre deux instruction sur une meme ligne separer par un point virgule

    avce cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while(...)
    do
    ...
    done
    j'ai une erreur avce un ` avant le while

    pour la varaible chemin c'est un oubli

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    OUi le ";" peut s'interpreté comme "instruction suivante", c'est bien un separateur de commande en shell.

    PAr contre le while(......)n en erreur ??? essaye avec au moins un caratere blanc entre while et (...).
    ensuite le test d'existance d'un repertoire peut etre simplifier en lecteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while [ ! -d repertoire_a_tester ]
    do
        :
        ....
    done
    attention s'il tu ne mets aucune instruction entre le "do" et le "done", c'est une erreur .........

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ! (test -e /opt/appli/web/dev/htdocs/users/$1/migration/$3/$2);do
       mkdir /opt/appli/web/dev/htdocs/users/$1/migration/$3/$2
    done
    c'est après le ! qu'il faut un espace

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    mais je ferai un if pas un while, afin d'éviter une boucle infinie

  8. #8
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 445
    Points
    3 445
    Par défaut
    Bien vu pour le point virgule

    Je ne comprend pas l'utilité d'utiliser le séparateur d'instruction cependant pour un "do", alors que c'est beaucoup plus lisible quand il est à la ligne ( à mon gout en tout cas ) la preuve -> j'ai cru que c'était une faute de frappe

    A+

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    merci de vos reponses
    voici mon script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/sh
    export  HOME=/home/users/web/travail
    export  CVSROOT=/opt/appli/cvs2
    export  PATH=/usr/local/cvs/bin/:$PATH
    while [ ! -d  /opt/appli/web/dev/htdocs/users/$1/migration/$3/$2]
    do
    mkdir -p /opt/appli/web/dev/htdocs/users/$1/migration/$3/$2
    done
    cd /opt/appli/web/dev/htdocs/users/$1/migration/$3/$2
    # Récupération de la version du module
    cvs -d :pserver:***:****@linux027:/opt/appli/cvs2 checkout -P -r $2 $4
    mais j'ai une erreur
    site/caameleon/engine/modules/migrationVersion/shell/checkout.sh: line 12: syntax error: unexpected end of file
    la commande cvs est bonne

  10. #10
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Essaie de passer un ligne à la fin de ton script et d'enregistrer de nouveau.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    idem

  12. #12
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    ...$3/$2 ]
    (il manque un espace)

Discussions similaires

  1. Script Shell : lister tous les fichiers d'un répertoire et sous rép
    Par raton_laveur dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 22/01/2009, 16h43
  2. Script shell pour parser un fichier txt
    Par pcsystemd dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 30/09/2008, 09h32
  3. script shell pour renommer un fichier
    Par wang_xue dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 15/11/2007, 15h45
  4. Script shell pour modifier plusieurs fichiers
    Par julio_097 dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 03/10/2006, 12h41
  5. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48

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