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 :
côté PERL :
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
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....
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{....}
- 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 ?
Partager