Ah, you've updated the post while I was working on your code. Anyway, I'll post my solution too.
I presume you want to do these checks over all lines of an inputfile containing the pipe delimited data, and not just one line. In such case, your awk statement would greedily fetch all the $1 and $2's of inputfile.
#! /bin/bash
while IFS='|' read a b c
do
SrcFileByte=${a//\"/}
CtrlFileCnt=${b//\"/}
if [ -z $CtrlFileCnt ] && [ -z $SrcFileByte ]; then
echo "File Count Check and Byte Count Check is Skipped";
else
if [ -z $CtrlFileCnt ]; then
echo "File Count Check is skipped";
else
if [ -z $SrcFileByte ]; then
echo "File Byte Check is skipped";
else
echo "Both are checked";
fi
fi
fi
done < tab_delimited_inputfile
Maybe this will help as it illustrates parsing a line on a delimiter and assigning the values to variables which are then check for null. It saves you some processes and command substitutions too. It does not strip the double-quotes as you seem to just want to test for the presence of something in that field position (you should really make sure its a number, and thus a valid count, etc).