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: