(KSH) Traitement en fct du contenu d'une var
jmpaunix
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour à tous,
Je rencontre un nouveau type de problème, bien que j'ai trouvé une solution un peu lourde palliative.
Je traite toujours des fichiers XML, via un XSLT je met les infos importantes dans un TXT que j'utilise par la suite pour compléter un HTLM.
Maintenant j'ai 4 maquette de mail HTLM. La "structure" du mail envoyé sera en fonction d'un "processing instruction" dans le XML d'entrée.
J'ai isolé cette donnée dans une variable $TYPE
Cependant, en fonction d'elle je dois envoyer le mail 1 2 3 ou 4, ce qui n'est pas si facile car cette fameuse variable TYPE est comme suit :
1/ Type=x A ( alors on envoie le mail 1)
2/ Type=x B (alors on envoie le mail 2 )
3/ Type=x C (alors on envoie le mail 3)
4/ Type=x (alors on envoie le mail 4)
5/ Type=x A B ( on envoie le mail 1 uniquement, a vrai dire on prend la première occurrence)
J'ai procédé par un :
Code :
if [ "$TYPE" == "x A" ]
then --traitement mail 1--
Cependant je devrais faire 4 if, et je ne peux pas traiter mon cas spécial 5/
Je ne sais pas quelle type de boucle je dois utiliser.
On m'a dit que partir sur un case pourrait m'aider ?
Merci à tous,
Je rencontre un nouveau type de problème, bien que j'ai trouvé une solution un peu lourde palliative.
Je traite toujours des fichiers XML, via un XSLT je met les infos importantes dans un TXT que j'utilise par la suite pour compléter un HTLM.
Maintenant j'ai 4 maquette de mail HTLM. La "structure" du mail envoyé sera en fonction d'un "processing instruction" dans le XML d'entrée.
J'ai isolé cette donnée dans une variable $TYPE
Cependant, en fonction d'elle je dois envoyer le mail 1 2 3 ou 4, ce qui n'est pas si facile car cette fameuse variable TYPE est comme suit :
1/ Type=x A ( alors on envoie le mail 1)
2/ Type=x B (alors on envoie le mail 2 )
3/ Type=x C (alors on envoie le mail 3)
4/ Type=x (alors on envoie le mail 4)
5/ Type=x A B ( on envoie le mail 1 uniquement, a vrai dire on prend la première occurrence)
J'ai procédé par un :
Code :
if [ "$TYPE" == "x A" ]
then --traitement mail 1--
Cependant je devrais faire 4 if, et je ne peux pas traiter mon cas spécial 5/
Je ne sais pas quelle type de boucle je dois utiliser.
On m'a dit que partir sur un case pourrait m'aider ?
Merci à tous,
A voir également:
- (KSH) Traitement en fct du contenu d'une var
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Word a trouvé du contenu illisible - Guide
- Traitement de texte gratuit - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
- Ce logiciel gratuit et léger est parfait pour remplacer Word, même sur un vieux PC - Guide
3 réponses
Salut,
Un petit exemple devrait t'aider à finaliser ton script...
;-))
Un petit exemple devrait t'aider à finaliser ton script...
$ cat foo.sh
#! /bin/bash
read -p "Entrez A, B, C, A B ou rien : " NAME
case "x ${NAME}" in
"x A"|"x A B") echo "Vous avez tapé : $NAME"
;;
"x B") echo "Vous avez tapé : $NAME"
;;
"x C") echo "Vous avez tapé : $NAME"
;;
"x ") echo "Vous n'avez rien tapé."
;;
*) echo "Erreur"
;;
esac
$ ./foo.sh
Entrez A, B, C, A B ou rien : B C
Erreur
$ ./foo.sh
Entrez A, B, C, A B ou rien : A B
Vous avez tapé : A B
$ ./foo.sh
Entrez A, B, C, A B ou rien : A
Vous avez tapé : A
$ ./foo.sh
Entrez A, B, C, A B ou rien :
Vous n'avez rien tapé.
$
;-))