Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 08 Oct 2017 11:51:42 -0500
From:      Paul Schmehl <pschmehl_lists@tx.rr.com>
To:        Polytropon <freebsd@edvax.de>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: Scripting problem
Message-ID:  <D3BB657AEB783C53A06B7084@Pauls-MacBook-Pro.local>
In-Reply-To: <20171008095413.b0700f43.freebsd@edvax.de>
References:  <7AB396F429EEB6890100F082@Pauls-MacBook-Pro.local> <20171008095413.b0700f43.freebsd@edvax.de>

next in thread | previous in thread | raw e-mail | index | archive | help
--On October 8, 2017 at 9:54:13 AM +0200 Polytropon <freebsd@edvax.de> 
wrote:

> 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@tx.rr.com < /dev/null
>>
>> Right before this line are these lines:
>> MESSAGE="path/to/message.txt"
>> ADDRESS="pschmehl@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@hostname and
>> backup@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@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@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D3BB657AEB783C53A06B7084>