Dave, I suppose that in many cases some extra sql*plus capabilities, such as formatting queries, bind/lexical variables, at last spooling are in use, so sql*plus script in fact is something more than sql script and it can not be invoked via dynamic sql.
Muskaan, I suppose you may easily add a couple of lines to any sql*plus script to get executable from it. But can you clarify your task a bit? Do you need to invoke this script from client machine to read server side environment variables? Or both sql*plus and database work within the same environment?
Regards, Dima