From: utzoo!decvax!harpo!utah-cs!utah-gr!thomas Newsgroups: net.unix-wizards Title: Re: . files, defaults, and generality Article-I.D.: utah-gr.608 Posted: Fri Oct 29 15:19:21 1982 Received: Sat Oct 30 03:10:09 1982 References: microsof.2558 The #! mechanism is actually interpreted by the kernel, not by either shell. The syntax is somewhat restrictive, the #! must be followed by a single space, the (full path)name of the program to be executed, optionally a single space and one argument. All this may not be longer than 32 characters. But, it makes ANY script, etc. into something which may be executed via exec! Not only that, but an arbitrary interpreter can be supplied - if you put #! /bin/make -f at the beginning of your makefile and chmod +x it, it is now executable. A nice way to manage multiple makefiles. Similarly, saying #! /bin/awk -f as the first line of an awk program means you can just run it. No more awk -f foofile args just type foofile args and away you go! I think this was originally suggested by Dennis Ritchie, but I could be wrong. =Spencer