A possible solution is DRMAA. I know both SGE and LSF support DRMAA, but it's not a uniform submit script, rather it's a uniform library.
This common submit is a common problem in the Grid universe. There have been many solutions, such as:
- Generic Job language that is translated, such as RSL (globus) and JSL (Job specification language standard, implemented by few grid middlewares).
- Translate one submit language into another, or many others. Such as Condor's batch universe.
Grid Middleware seems heavy handed for your usecase. Something like Bosco may work for you. Or just plain old Condor (only have to learn Condor language to submit to PBS, LSF, or SGE).
But you are right, each scheduler comes up with their own submission language, and there is not unified method for submitting to any.