Bonjour à tous,

Je travaille sur un script perl qui génère dynamiquement un script bash, contenant la commande FTP d'unix... pourquoi dynamiquement ? pour y ajouter au fur et à mesure, les fichiers à transférer...

le problème est que j'aimerai récupérer le code retour de cette commande

le script bash généré est de la forme suivante :

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
#!/bin/bash
ftp ADRESSE_MACHINE << !!
LOGIN
PASSWORD
verbose
lcd REP_DEPART
cd REP_ARRIVEE
ascii
put fichier1
put fichier2
put ...
bye
STATUS=$?
if [ $STATUS -ne 0 ]
then
exit 1
fi
côté PERL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
system ("sh -x ".$file_ftp." 1> ".$ftp_log);
if ($? != 0){
      die "Pb lors du l'execution du script de transfert !";
}else{....}
le problème est que j'ai ajouter ce que je veux derrière le "bye" de ma commande FTP dans le script, ça n'est pas pris en compte....
- d'où ma 1ere question, le "bye" est-il bloquant pour toute autre commande unix dans un bash ?
et surtout la question principale : pourquoi je ne récupère pas ce retour ?

J'avais pensé à lire dans mon log les retours FTP ( avec numéro 220, etc...). Mais dans mon cas, les erreurs n'ont pas de numéros de lignes (genre : erreur dans la commande ftp, etc...).

Quelqu'un aurait-il une idée ?