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>