Commande mail

Résolu/Fermé
Franck - 30 déc. 2009 à 16:03
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 30 déc. 2009 à 20:50
Bonjour,



j'essaye d'envoyer un mail a mon compte utilisateur en local.

j'utilise bien evidement la commande mail de cette maniere dans un script bash.



${SUBJECT}="test"

mail -s ${SUBJECT} ${DEST} < ${MESSAGE}



cela marche bien sauf quand ma variable ${SUBJECT} comporte une phrase

${SUBJECT}="test test"



je n'arrive pas a lui passer des guillemets.



pourriez-vous m'aider ?
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
30 déc. 2009 à 16:06
Salut,

Les variables en bash se déclarent ainsi :

SUBJECT="test"
echo "${SUBJECT}"

0
oui c'est une erreur de frappe
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895 > Franck
30 déc. 2009 à 20:02
Ok, par contre que veux-tu dire par "je n'arrive pas a lui passer des guillemets."
0
Franck > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
30 déc. 2009 à 20:10
en fait j'essaye de stocker toutes la commande dans une variable.
mais quand j'ecris un ${SUBJECT} avec plusieurs mots la commande se plante.
alors j'essaye de placer des guillemets dans ma commande pour indiquer que ${SUBJECT} est une chaine
0
oui je me suis trompé en ecrivant le post mais s'est bien se que j'ai ecrit dans mon script.

#!/bin/bash
SUBJECT="[SUJET] aucun"
DEST="root@systeme,user@systeme"
MESSAGE="/home/user/test.mail"
SENDMAIL="mail -s \"${SUBJECT}\" ${DEST} < ${MESSAGE}"

${SENDMAIL}
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
30 déc. 2009 à 20:10
Et où est le problème alors ???
0
Franck > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
30 déc. 2009 à 20:11
sa ne fonctionne pas, la commande reste bloquée
0
Franck > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
30 déc. 2009 à 20:23
quand j'affiche ma commande,
echo ${SENDMAIL}

sa me retourne,
mail -s "[SUJET] aucun" root@systeme,user@systeme < /home/user/test.mail

cela me semble correcte mais quand je l'execute,

:~$ sudo /etc/scripts.d/sendMail.sh


^C
(Interrupt -- one more to kill letter)
^C
:~$

le script reste "bloqué", je suis obligé de couper (ctrl+c), en espérant etre plus clair
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
30 déc. 2009 à 20:26
Et comme ça :

eval ${SENDMAIL}

Ça marche pas mieux ?
0
ah si avec eval sa marche impec.

qu'est ce que eval ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895 > Franck
30 déc. 2009 à 20:50
Voir "man bash" :
       eval [arguments ...]
              Les arguments sont lus et regroupés en une seule  commande  sim-
              ple.  Cette  commande est alors lue et exécutée par le shell, et
              son code de retour est renvoyée  comme  valeur  de  la  commande
              eval.   S'il  n'y a pas d'arguments, ou uniquement des arguments
              nuls, eval renvoie vrai.
0