Если ваш запрос возвращает одну строку вывода, возможно, что-то вроде этого.
#!/bin/sh
case `echo "SELECT * FROM jobs WHERE status = -20;" |
mysql -u user -pXXX -h servername --database=chosenDB` in
-20) echo It is minus twenty | /usr/lib/sendmail -oi you@example.com ;;
esac
Более полезно поместить выходные данные во временный файл и стереть их, если это неинтересно.
#!/bin/sh
t=`mktemp -t muesliXXXXXXX` # Not entirely portable -- google this bit
trap 'rm -f $t' 0
trap 'exit 127' 1 2 3 5 15
mysql -u user -pXXX -h servername --database=chosenDB <<'____HERE' >$t
SELECT * FROM jobs WHERE status = -20;
____HERE
if grep -qw '-20' $t; then
( cat <<'____HERE'; cat $t) | /usr/lib/sendmail -oi -t
From: Friendly Cron Job <root@example.com>
To: you <you@example.com>
Subject: It is Minus Twenty
____HERE
fi
Некоторые оболочки / некоторые кошки позволят вам использовать здесь документ и названный файл одновременно, избегая бесполезного использования кошки.
cat - $t <<'____HERE' | /usr/lib/sendmail -oi -t
Но, боюсь, это не совсем портативно.
grep
просто чтобы дать вам идею; замените его чем-то менее специальным, возможно, фактически проанализируйте выходной файл и выполните сложную логику с результатом анализа.