On Wed, May 9, 2018 at 9:04 AM, Christopher Browne <cbbro...@gmail.com> wrote:
> On Wed, 9 May 2018 at 04:00, John McKown <john.archie.mck...@gmail.com> > wrote: > > To me this looks similar to a UNIX shell script. Now, going sideways for > a second, if someone wanted to create a "self contained" awk script. It > would look something like: > > > #!/bin/awk -f > > ... awk code ... > > I have found it convenient when Lisp implementations (that use ; as the > comment indicator, and where # tends to mean something quite different) > have provided something like this. > > I'd quite like it if I could start a script with > #!psql > or similar and have it be, yes, indeed, directly executable via psql. > > There are several complications that leap out at me... > ​Frankly, none of those are complications. For all the areas of concern you described the decision for desired behavior has already been made. They seem to limit the extent to which a shebang would be useful... 1. O/S PATH determines what a bare "psql" invocation finds 2. arguments override environment variables 3. \i means include, no transaction semantics And trying harder for #1 doesn't seem worthwhile - or maybe is a feature in its own right. Something like: --@ client-version >= 9.6 --@ server-version >= 9.4 If those comments are found in a file psql is evaluating it should error out if the condition doesn't match. That should apply regardless of invocation method. David J.