The way I always recommend is:to use:
ocean -restore script.ocn
ocean -nograph -restore script.ocn
There are a couple of benefits of this. One is that because it is like doing a load after starting, you don't see the return value of every single statement in the script, so the output is cleaner. The second is that (compared with redirecting the input to ocean) it will go interactive at the end, so if you've plotted anything the graphs will remain on the screen (assuming you didn't use -nograph !).
You do need to add a call exit() at the end of the script if you don't want it to go interactive though.