pschmehl_lists at tx.rr.com
Sun Oct 8 16:54:27 UTC 2017
--On October 8, 2017 at 9:54:13 AM +0200 Polytropon <freebsd at edvax.de>
> On Sun, 08 Oct 2017 00:59:39 -0500, Paul Schmehl wrote:
>> I'm writing a bash script to create a db backup and email it to me once
>> a day. I'm munged some parts to not reveal details
>> I'm having a problem with this line:
>> /usr/local/bin/mutt -s $SUBJECT -i $MESSAGE -a $FILENAME --
>> pschmehl at tx.rr.com < /dev/null
>> Right before this line are these lines:
>> ADDRESS="pschmehl at mydomain"
>> SUBJECT="Today's db backup"
>> From the commandline this runs fine, but the script returns an error:
>> Error sending message, child exited 67 (User unknown.).
>> Could not send the message.
>> The mail is sent, and when it's received, the subject line is Today's.
>> When I look in the maillog, mutt tried to send email to db at hostname and
>> backup at hostname.
>> I changed the subject to Backup, and the error goes away.
> This proves you have a quoting problem. Enclose the parameters
> in the mutt call in "...", like this:
> /usr/local/bin/mutt -s "$SUBJECT" -i "$MESSAGE" -a "$FILENAME" --
> pschmehl at tx.rr.com < /dev/null
> When the variables are being evaluated by the shell, the quotes
> during assignment are removed, and you you get is
> /usr/local/bin/mutt -s Today's db backup -i path/to/message.txt -a
> /whatever/filename/there.is -- pschmehl at tx.rr.com < /dev/null
Thanks. I was unaware of this.
> The unterminated ' is handled more or less gracefully, but it
> probably interferes with mutt's address detection. You can
> now easily recognize the problem.
>> I'm running FreeBSD 10.3-RELEASE and the script is written in bash.
> Do you have any reasons not to stick to default sh? Do you use
> any features specific to bash?
None other than I've always written bash scripts.
>> Why would mutt do this?
> Well, actually mutt doesn't do it - it's the shell that just does
> what you told it to. ;-)
I see that now. Thanks for educating me.
Paul Schmehl, Retired
As if it wasn't already obvious, my opinions
are my own and not those of my employer.
"It is as useless to argue with those who have
renounced the use of reason as to administer
medication to the dead." Thomas Jefferson
"There are some ideas so wrong that only a very
intelligent person could believe in them." George Orwell
More information about the freebsd-questions