Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 09/02/2010, 18h09   #1
Membre habitué
 
Avatar de crashtib
 
Homme
Support technico-fonctionnel
Inscription : avril 2009
Messages : 215
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 : 215
Points : 148
Points : 148
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 :
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 :
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 !
crashtib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2010, 20h46   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur développement décisionnel
Inscription : mai 2002
Messages : 4 299
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 299
Points : 6 908
Points : 6 908
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
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2010, 09h57   #3
Membre habitué
 
Avatar de crashtib
 
Homme
Support technico-fonctionnel
Inscription : avril 2009
Messages : 215
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 : 215
Points : 148
Points : 148
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
crashtib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2010, 10h27   #4
Membre chevronné
 
Inscription : septembre 2007
Messages : 685
Détails du profil
Informations personnelles :
Âge : 48
Localisation : Suisse

Informations forums :
Inscription : septembre 2007
Messages : 685
Points : 723
Points : 723
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).
jmelyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2010, 10h37   #5
Membre habitué
 
Avatar de crashtib
 
Homme
Support technico-fonctionnel
Inscription : avril 2009
Messages : 215
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 : 215
Points : 148
Points : 148
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
crashtib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2010, 13h27   #6
Membre habitué
 
Avatar de crashtib
 
Homme
Support technico-fonctionnel
Inscription : avril 2009
Messages : 215
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 : 215
Points : 148
Points : 148
Je relance ce thread pour poser une nouvelle question :

Code :
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)
crashtib est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 12h09.


 
 
 
 
Partenaires

Hébergement Web