Neither are POSIX, readlink will work on most things *nix/bsd and fail on most (if not all) OSX (unless it was installed third party) and all Windows, grep can be considered safe for all *nix/bsd and OSX but will fail on most all Windows. I assume find will also fail on Windows, but I have no real idea. Using [shell] can be tricky if you want it to work on everything, many systems are not fully POSIX complient. Best to stick to sh commands and basic utilities if you go down that path, which will do most everything, just may take an extra step or two.
I am somewhat guessing on those failing on Windows, suspect it is correct, but I have little experience.