Commande mail

Résolu
Franck -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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 ?
Configuration: Linux
Mozilla 1.9.1.6

3 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Les variables en bash se déclarent ainsi :

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

    0
    1. Franck
       
      oui c'est une erreur de frappe
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > Franck
         
        Ok, par contre que veux-tu dire par "je n'arrive pas a lui passer des guillemets."
        0
      2. Franck > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        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
  2. Franck
     
    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
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Et où est le problème alors ???
      0
      1. Franck > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        sa ne fonctionne pas, la commande reste bloquée
        0
      2. Franck > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        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
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Et comme ça :

    eval ${SENDMAIL}

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

      qu'est ce que eval ?
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > Franck
         
        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