Le mercredi 14 mars 2007 02:07, Cédric Lucantis a écrit : > Le mercredi 14 mars 2007 01:04, Marco De Vitis a écrit : > > Hi, > > this is not strictly Debian-related, but I'm doing it on Etch, so... :) > > > > Let's say I'm writing a script like this: > > > #! /bin/bash > > > > > > SUBJECT="This is a test mail" > > > WARNMSG="An error occurred" > > > WARNCMD="mail -s \"${SUBJECT}\" root" > > > > > > echo "echo $WARNMSG | $WARNCMD" > > > echo $WARNMSG | $WARNCMD > > > > Everything works fine if I enter the equivalent command line: > > > > echo "An error occurred" | mail -s "This is a test mail" root > > > > A mail is sent to root with subject "This is a test mail" and body "An > > error occurred". > > > > The script should produce the same effect, but instead, when I run it, > > it sends a mail with subect <"This> and body "An error occurred" to the > > following users: > > > > is > > a > > mail > > , root, test > > > > ....although the command line printed by the first echo statement looks > > perfect. > > > > It'a problem which has been bugging me for a while. I usually find some > > workaround, but I'm a bit tired now. An I suppose it should be some kind > > of FAQ... although I couldn't find anything around. > > > > I already tried with single quotes, I tried escaping them, I tried > > escaping the spaces in the subject... to no avail. > > > > Any clues? > > Thanks. > > eval does the trick: > > SUBJECT="This is a test mail" > WARNMSG="An error occurred" > WARNCMD="mail -s \"${SUBJECT}\" root" > echo "echo $WARNMSG | $WARNCMD" > eval $WARNMSG | $WARNCMD
oops, sorry, quotes are required here: eval "$WARNMSG | $WARNCMD" -- Cédric Lucantis