Bonjour tlm,
JE suis entrain de faire du nouveau du shell après 4 ans et je bloque sur une commande.
But de mon Script : envoyer un mail en attachant tous les fichiers csv contrenus dans un repertoire donné.
Code :
#preparing the send mails comand
for i in $(find $FILE_DIR | grep csv )
do
SENDC=" "uuencode" "$i" "$i" ; "$SENDC
done
#fixing the Subject of the mail
SUBJECT=$(basename $i)
#Sending the mail
FINAL_COMAND="( "$SENDC" ) | mail -s "$SUBJECT" "$TO
$FINAL_COMAND
echo $FINAL_COMAND
en lançant le script j'obtient cette erreur :
( uuencode /HDisclosure/files/POSITIONS.csv /home/HDisclosure/files/POSITIONS.csv ; uuencode /HDisclosure/files/POSITIONS1.csv /home/HDisclosure/files/POSITIONS1.csv ) | mail -s POSITIONS me@mail.com
./Hdc_sendMail.ksh[43]: (: introuvable.
je pense que ça provient du ";"
Lorsque je fais un copier coller de la commande dans le terminal ça envoi le mail par contre le script retourne l'erreur ci-dessus.
Merci pour votre aide.

' imprévu.Mail.ksh[19]: 0403-057 Erreur de syntaxe. ligne 21 : 'do
sinon je pense que la syntaxe pour utiliser uuencode est la suivante dans ce cas :
( uuencode file1 file1 ; uuencode file2 file2 ) | mail -s "$(basename $i)" "$TO"
- la boucle for remplace les () et uuencode chaque fichier et pipe le tout dans le mail
sinon je m'en sors avec une autre approche
for i in $(find $FILE_DIR | grep csv )
do
echo "handling the file " $(basename $i)
echo
uuencode $i $i >> PJ.tmp
done
mail -s "$(basename $i)" -c $CC $TO < PJ.tmp
Merci dubeck