And as you guys suggested i cannot do a='CASH\$\$A' becos this variable will be used in other part of the program...So is there anyway where i can achieve this.
After the double quoted expansion, the first grep argument will be EXEC *CASH$$ . In the basic regular expression grammar, that first dollar sign will be treated as a literal dollar sign, but the second will be interpreted as an end of line anchor.
You've done a very poor job of specifying your problem.
You initially posed a question which does not accurately reflect the actual situation (omitting the EXEC * ). Attempts to proactively simplify the matter usually complicate the troubleshooting process (often because the person doing the simplifying cannot identify what is and is not relevant). It is always preferable to provide too much information rather than too little.
Eights posts into this thread and we still do not know if you are trying to match a space followed by an asterisk (in which case you can use -F) or any sequence of consecutive spaces (in which case you MUST NOT use -F). Which is it?
Show us some input data and show us the desired output. Tell us which OS and shell you're using as well. After nearly 5 years of membership and over 100 posts, you should know better.