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 :

[korn shell] ftp dans boucle


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut [korn shell] ftp dans boucle
    Salut à tous,

    j'ai un petit script, en ksh, quand il a que ça il tourne impec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/ksh
     
    ftp -in $sid_ftp_ithy <<EOF
                    quote USER $login_ftp_ithy
                    quote PASS $mdp_ftp_ithy
     
                    binary
                    mput $chemin_fichiers_generes/$nom_fichier_genere $chemin_complet_depot_ftp/$nom_fichier_genere
                    quit
    EOF
    Par contre, quand je le mets dans une boucle for, il marche plus.

    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
    #!/bin/ksh
     
    . ../conf/config.txt
     
    #debut du ftp
     
    echo "Dump de la base réussi. Début de l'envoi ftp..."
     
    #recupération du (des) nom(s) de fichier(s) générés par le dump de THERMO (et HYDRO)
     
    compteur=0
     
    for i in $(find $chemin_fichiers_generes/ -name "*.del30" -print)
    do
            nom_fichier_genere=$(basename $i)
     
            ftp -in $sid_ftp_ithy <<EOF
                    quote USER $login_ftp_ithy
                    quote PASS $mdp_ftp_ithy
     
                    binary
                    mput $chemin_fichiers_generes/$nom_fichier_genere $chemin_complet_depot_ftp/$nom_fichier_genere
                    quit
            EOF
    done
    Quelqu'un peut me dire pourquoi j'ai systématiquement le message d'erreur suivant :

    LOL.ksh[13]: syntax error at line 17 : `<' unmatched

    Le boucle est vérifiée, éprouvée, testée, elle marche.

    Je commence à devenir dingue de passer autant de temps sur si peu de code. Merci pour votre aide !

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 083
    Points : 30 841
    Points
    30 841
    Par défaut
    As-tu essayé de ramener ton EOF en début de ligne, ou d'utiliser <<-EOF ?
    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.

  3. #3
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    wouahou, ça fonctionne, les deux solutions, incroyable.

    A défaut d'accpeter la réponse comme ça, je vais essayer au moins de savoir pourquoi le fait de ne pas indenter EOF correctement ou de rajouter - devant EOF à la première ligne change... comment ça se fait?


    Merci en tout cas, et bravo

  4. #4
    Membre éclairé Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    Par défaut
    Pour indiquer la fin du texte, le mot EOF (ou n'importe quel autre mot clé, comme AZERTY ou SCHTROUMF) doit obligatoirement se trouver seul sur une ligne, sans aucun autre caractère devant ou derrière. Utiliser -EOF veut dire qu'il existe un unique caractère (TAB) en début de ligne qu'il faut supprimer. C'est juste pour que les pauvres lecteurs humains ne se perdent pas dans les indentations.
    Un problème bien posé est déjà résolu (H. Bergson).

  5. #5
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    Merveilleux, merci beaucoup pour ces explications claires. J'avais oublié à quel point les espaces et tabulations pouvaient influer en korn shell, étant débutant.

    Bonne journée

  6. #6
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    Je relance ce thread pour poser une nouvelle question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ftp -in $sid_ftp_ithy <<EOF
                    quote USER $login_ftp_ithy
                    quote PASS $mdp_ftp_ithy
     
                    ascii
                    put $chemin_fichiers_generes/$nom_fichier_genere $nom_fichier_genere
                    quit
    EOF
    lorsque que j'exécute cette instruction, je nom du fichier déposé sur la machine distance commence par le login. c'est fâcheux. Je pense qu'il faudrait ajouter des quotes quelque part, mais je ne sais pas où, ni quelles quotes (simples ou doubles)

Discussions similaires

  1. Affichage du dollar dans le korn shell
    Par freestyler dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 03/01/2008, 11h26
  2. [SHELL] Variable dans boucle for
    Par magicwill dans le forum Linux
    Réponses: 6
    Dernier message: 11/08/2007, 11h31
  3. [Shell] awk dans une boucle while
    Par Shiva dans le forum Linux
    Réponses: 4
    Dernier message: 22/07/2007, 16h28
  4. Problème dans un script shell/ftp
    Par peppena dans le forum Linux
    Réponses: 16
    Dernier message: 09/10/2006, 13h07
  5. Shell - Erreur dans une boucle for
    Par claralavraie dans le forum Linux
    Réponses: 4
    Dernier message: 11/01/2006, 13h45

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