[comp.unix.questions] Why does this shell program run unde

wagner@iaoobelix.UUCP (06/22/87)

In fact, many programs use sort of meta-information about programs which is
stored in comment-like structures. Just think of ZMacs with lines like

;;; -*- Mode:Lisp; Package:Foo; Readtable:Bar; FrobFlag:maybe; -*-

or "/* NOTREACHED */" instructions for lint, or "$Compile:" lines in C or
whatever programs/text files, or SCCS ids of the form

#ifndef lint
static char sccsid[] = "@(#)umu.c 1.1 87/22/07 charlie";
#endif

The point is that you have to include information in a text file which is
interpretable by more than just one processor. This kind of meta-information
for, let's say, processor A, is then best put into a structure ignored by
processor B. And what kind of structure is more likely to be used for that
purpose than comments of processor B? Anyway, the reasons why one can write
"#! /bin/foo" to invoke /bin/foo on that text file, may be historical reasons,
and maybe those people who implemented this feature (it is one!) haven't
thought about its future use up to that extent, but the "#!" convention is a
useful one, allowing nice invocations of e.g. CProlog saved states which
usually start with "#! /usr/local/cprolog\n" or something alike...

Let's put an end to this discussion.

Juergen Wagner,		     (USENET) ...seismo!unido!iaoobel!wagner
("Gandalf")			 Fraunhofer Institute IAO, Stuttgart