Unfortunately macros do not check for range, so if you use:
it will always try to bash your focus target as long as you have a focus. That is why I like to use:
/cast [@focus, exists]Shield Bash
In that macro I can mouseover any nameplate that is casting and bash it, and otherwise just bash my main target. Clearly replace to *at* with the correct symbol, stupid MMoChamp.
/cast [@mouseover, exists, harm]Shield Bash
Does that mean I'm stupid now?
I hope not, otherwise I'm sad.