実行して数を生成する選択クエリがあります。たとえば、次のレコードを含むテキストファイルに回答をエクスポートします。
Unprocessed record for A Sources
----------------------Unprocessed record count for ABC SOURCE ------------------
abc_count= 0
--------------------Unprocessed record count for CDE Source --------
CDE_count= 0
-----------------------Unprocessed record count for DEF Source -----------------
DEF_count= 0
------------------Unprocessed record count for GHI Source ----------------------
GHI_count= 56
上記のソースの数がゼロでないことを確認するUnixコマンドを作成し、必要なチームにメールで送信したいと思います。
これは私が以前使用したものですが、うまくいきません。
for CHECK in $(awk '{print $1}' hello | grep count=| cut -d"=" -f1) do
if [ $(grep $CHECK output.txt | awk '{print $2}') -ne 0 ] then
echo "$(grep $CHECK output.txt)" | mailx -s "CHECK ABC PROCESS" [email protected]
fi
done
ベストアンサー1
beforeステートメントとbeforeステートメントに;
セミコロンを追加する必要があります。これ以上問題がなければ、正常に動作します。私はあなたのスクリプトも改善しません。if
then
for
do
スクリプト。
for CHECK in $(awk '{print $1}' hello | grep count=| cut -d"=" -f1); do
if [ $(grep $CHECK output.txt | awk '{print $2}') -ne 0 ]; then
echo "$(grep $CHECK output.txt)" | mailx -s "CHECK ABC PROCESS" [email protected]
fi
done
また、数値を取得するにはcut
このようなコマンドを使用する必要はありませんか?cut -d"=" -f2
ループ外でコマンドを実行し、結果が出ていることを確認することをお勧めします。