[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

using mail in scripts



Folks, I have a bash script and I wanted to be able to catch a situation
and then send an email to the user flagging this. However, the -s to
`mail` doesn't allow spaces and I cannot work out, despite several
attempts, how to escape/quote etc in order to do what I want. Here's
what I'd like to do:

#!/bin/bash -x
TEMPFILE=`mktemp /tmp/chk_procs_XXX`
trap 'date|mail -s "$0 error" michael@there.com;echo Error - aborting;\
exit' ERR

### only allow one instance of this per user to run at a given time
ps -elf|grep $0|grep -v grep > $TEMPFILE
if [[ `cat $TEMPFILE | wc -l` -gt 1 ]]; then 
    #cat $TEMPFILE
    date | mail -s '${0} already Running' michael@here.com
    rm $TEMPFILE
    exit -1
fi
rm $TEMPFILE


but that mails the string $0 not the value. Removing the quotes results
in an error.

Any ideas?
Thanks, M



Reply to: