I separated command and args, so that we can test if the command exists and fail nicely if it does not. 
Also, escape_for_shell works OK for my cmd, but not for args.  If I use it for args, it puts all the args into $1 within the script that's being called.   IE, it passes "-a -ya" rather than -a -ya.