Après moultes manips, mon script est terminé et semble pas trop mal fonctionné d'après les tests :
#!/bin/sh
for i in $(ls *.); do
resultat=$(ripmime -i $i -d /var/tmp/scantomail -v --verbose-contenttype --no-doublecr --overwrite )
if [ "${resultat##*filename=}" != "" ];
then
resultat=${resultat##*filename=}
if [ "${resultat%%.*}" != "" ];
then
resultat=${resultat%%.*}
if [ "${resultat%%_*}" != "" ];
then
resultat=${resultat%%_*}
nbcaracteres=$(echo $resultat | wc -m)
if [ "$nbcaracteres" = "10" ] ;
then
repe=$(ls -d /home/partage/Clients/$resultat*)
if [ "$repe" = "" ];
then
mkdir /home/partage/Clients/$resultat
cp /var/tmp/scantomail/$resultat*.pdf /home/partage/Clients/$resultat/
rm -f /var/tmp/scantomail/$resultat*.pdf
rm -f /var/tmp/scantomail/*
mv $i ./traites/$i
#echo "repertoire a creer"
#echo $nbcaracteres
else
# echo "/var/tmp/scantomail/"$resultat"*.pdf"
# repe="/var/tmp/scantomail/cible/"
cp /var/tmp/scantomail/$resultat*.pdf $repe/
rm -f /var/tmp/scantomail/$resultat*.pdf
rm -f /var/tmp/scantomail/*
mv $i ./traites/$i
#echo "repertoire existant"
#echo $nbcaracteres
fi
# Je reconstruis la BAL pour mettre à jour les dossiers
su - cyrus -c "/usr/sbin/cyrreconstruct -r user/scantomail"
su - cyrus -c "/usr/sbin/cyrreconstruct -f user/scantomail"
fi
else
exit
fi
else
exit
fi
else
exit
fi
#echo $resultat
#echo $i
done
La dernière chose à faire reste à transférer les emails ne contenant pas de pièces jointes intéressantes sur une autre BAL.
Mille mercis pour l'aide.
Aymeric.
PS : ce script a pour but d'automatiser la mise à disposition de fichiers à mes utilisateurs sans devoir ouvrir la BAL dédié à l'envoi des fichiers clients.
Ca marche super bien. Avec ces substitutions, comment peut-on gérer les erreurs.
J'ai parfois sur cette adresse email, des fichiers qui ne suivent pas cette nomenclature et du coup, cela fait planter mon script.
J'ai essayé de mettre un if pour tester la validité de la substitution avec de la faire mais je n'y arrive pas.
Comment via un if je peux tester que l'extraction de la sous-chaîne marche bien pour continuer toutes les substitutions ou sortir du script si mon fichier ne suit pas le même formattage de nom ?
J'abuse un peu mais j'ai une question subsidiaire :
la 1ère commande me fournit ce résultat :
Decoding content-type=multipart/mixed filename=textfile0 Decoding content-type=text/html filename=textfile1 Decoding content-type=application/pdf filename=test.pdf Decoding content-type=application/pdf filename=Copie de test.pdf
Decoding content-type=multipart/mixed filename=textfile0 Decoding content-type=text/plain filename=textfile1 Decoding content-type=text/html filename=textfile2 Decoding content-type=application/pdf filename=Copie de test.pdf
Je voudrais récpérer au niveau du dernier filename, le nom du fichier sans le .pdf et à partir de cette sous-chaîne récupérer la chaîne qui démarre au 1er caractère jusqu'au 1er _ trouvé (mon exemple n'est pas bon car il n'a pas de _ :))
[^] # Re: Mes 2 centimes
Posté par adurand . En réponse au message Résultat d'une commande dans une variable. Évalué à 1.
#!/bin/sh
for i in $(ls *.); do
resultat=$(ripmime -i $i -d /var/tmp/scantomail -v --verbose-contenttype --no-doublecr --overwrite )
if [ "${resultat##*filename=}" != "" ];
then
resultat=${resultat##*filename=}
if [ "${resultat%%.*}" != "" ];
then
resultat=${resultat%%.*}
if [ "${resultat%%_*}" != "" ];
then
resultat=${resultat%%_*}
nbcaracteres=$(echo $resultat | wc -m)
if [ "$nbcaracteres" = "10" ] ;
then
repe=$(ls -d /home/partage/Clients/$resultat*)
if [ "$repe" = "" ];
then
mkdir /home/partage/Clients/$resultat
cp /var/tmp/scantomail/$resultat*.pdf /home/partage/Clients/$resultat/
rm -f /var/tmp/scantomail/$resultat*.pdf
rm -f /var/tmp/scantomail/*
mv $i ./traites/$i
#echo "repertoire a creer"
#echo $nbcaracteres
else
# echo "/var/tmp/scantomail/"$resultat"*.pdf"
# repe="/var/tmp/scantomail/cible/"
cp /var/tmp/scantomail/$resultat*.pdf $repe/
rm -f /var/tmp/scantomail/$resultat*.pdf
rm -f /var/tmp/scantomail/*
mv $i ./traites/$i
#echo "repertoire existant"
#echo $nbcaracteres
fi
# Je reconstruis la BAL pour mettre à jour les dossiers
su - cyrus -c "/usr/sbin/cyrreconstruct -r user/scantomail"
su - cyrus -c "/usr/sbin/cyrreconstruct -f user/scantomail"
fi
else
exit
fi
else
exit
fi
else
exit
fi
#echo $resultat
#echo $i
done
La dernière chose à faire reste à transférer les emails ne contenant pas de pièces jointes intéressantes sur une autre BAL.
Mille mercis pour l'aide.
Aymeric.
PS : ce script a pour but d'automatiser la mise à disposition de fichiers à mes utilisateurs sans devoir ouvrir la BAL dédié à l'envoi des fichiers clients.
[^] # Re: Mes 2 centimes
Posté par adurand . En réponse au message Résultat d'une commande dans une variable. Évalué à 1.
Ca marche parfaitement. Par contre, il m'arrive d'avoir des fichiers qui ne suivent pas la nomenclature et du coup cela fait planter mon script.
Comment via un if je peux tester que l'extration de la sous-chaine marche bien ou sortir de la boucle sinon ?
Merci ;
Aymeric
[^] # Re: Mes 2 centimes
Posté par adurand . En réponse au message Résultat d'une commande dans une variable. Évalué à 1.
Ca marche super bien. Avec ces substitutions, comment peut-on gérer les erreurs.
J'ai parfois sur cette adresse email, des fichiers qui ne suivent pas cette nomenclature et du coup, cela fait planter mon script.
J'ai essayé de mettre un if pour tester la validité de la substitution avec de la faire mais je n'y arrive pas.
Comment via un if je peux tester que l'extraction de la sous-chaîne marche bien pour continuer toutes les substitutions ou sortir du script si mon fichier ne suit pas le même formattage de nom ?
Merci ;
Aymeric
[^] # Re: Mes 2 centimes
Posté par adurand . En réponse au message Résultat d'une commande dans une variable. Évalué à 2.
Merci beaucoup pour les éléments. Je vais tester cela demain.
Encore merci et bonne soirée.
Aymeric
[^] # Re: Mes 2 centimes
Posté par adurand . En réponse au message Résultat d'une commande dans une variable. Évalué à 2.
Meci pour la réponse, cela marche.
J'abuse un peu mais j'ai une question subsidiaire :
la 1ère commande me fournit ce résultat :
Decoding content-type=multipart/mixed filename=textfile0 Decoding content-type=text/html filename=textfile1 Decoding content-type=application/pdf filename=test.pdf Decoding content-type=application/pdf filename=Copie de test.pdf
Decoding content-type=multipart/mixed filename=textfile0 Decoding content-type=text/plain filename=textfile1 Decoding content-type=text/html filename=textfile2 Decoding content-type=application/pdf filename=Copie de test.pdf
Je voudrais récpérer au niveau du dernier filename, le nom du fichier sans le .pdf et à partir de cette sous-chaîne récupérer la chaîne qui démarre au 1er caractère jusqu'au 1er _ trouvé (mon exemple n'est pas bon car il n'a pas de _ :))
Est-ce que vous auriez une idée ?
Merci ;
Aymeric