如果您的查詢返回單行輸出,可能是這樣的。
#!/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 [email protected] ;;
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 <[email protected]>
To: you <[email protected]>
Subject: It is Minus Twenty
____HERE
fi
一些貝殼/有些貓會允許你在同一時間使用此文件和一個名爲文件,避免貓的無用使用。
cat - $t <<'____HERE' | /usr/lib/sendmail -oi -t
但我恐怕這不是完全便攜的。
grep
只是給你一個想法;用不太專門的東西代替它,可能實際上是解析輸出文件並對解析結果執行復雜的邏輯。
您將通過爲正在使用的shell添加標籤來提高您獲得良好答案的機會。標籤Shell通常由Windows用戶使用。指示bash,ksh,csh或?祝你好運! – shellter 2011-04-21 00:39:30