The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: norman@oclsc.org (Norman Wilson)
Subject: [TUHS] Shell control through external commands
Date: Sun, 11 Sep 2016 21:43:34 -0400 (EDT)	[thread overview]
Message-ID: <20160912014334.434304422E@lignose.oclsc.org> (raw)

I remember reading about #! in the early 1980s, and
having mixed feelings about it, as I still do.  The
basic idea is fine, if annoyingly limited; but that
the kernel has to decide, in effect, whether to treat
a header as binary or text bothers me.  Were I designing
a new system from scratch today, I'd just make the
header all text; the small extra space and time for
the kernel to parse that for binaries doesn't matter
any more.  It certainly did when #! was invented,
though.

I had the impression at the time that it came from
Berkeley, but I think I later heard from the horse's
mouth that it was originally Dennis's idea.

I don't think anyone has yet laid out the complete
story of what came before:

1.  Originally, the shell would exec(file), and if
exec returned ENOEXEC, would open the file and treat
it as shell commands.

2.  Then came the C shell, and a problem: did file
contain commands for csh or sh?  A hack emerged:
if csh encountered a script file, it would read
the first character; if that was '#' it was a
csh script, otherwise it handed off to /bin/sh.

None of this helped when some program other than
the shell called exec on a shell script.  That's one
reason execlp and execvp appeared.  (The other is that
they observe $PATH if the command pathname has a
single element.)

I don't know offhand whether there was ever an execlp/vp
that implemented the #-means-csh convention.  Anyone
else remember?

Norman Wilson
Toronto ON


             reply	other threads:[~2016-09-12  1:43 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-12  1:43 Norman Wilson [this message]
2016-09-12  9:18 ` Joerg Schilling
  -- strict thread matches above, loose matches on Subject: below --
2016-09-12 12:57 Norman Wilson
2016-09-12 12:56 Norman Wilson
2016-09-12  1:31 Norman Wilson
2016-09-12  9:33 ` Joerg Schilling
2016-09-12  0:27 Doug McIlroy
2016-09-11 17:39 Doug McIlroy
2016-09-11 18:11 ` Clem Cole
2016-09-11 18:27 ` Dan Cross
2016-09-11 18:50   ` Sven Mascheck
2016-09-11 22:13     ` Random832
2016-09-10 14:57 Nemo
2016-07-15 16:47 Doug McIlroy
2016-09-10 17:40 ` Dario Niedermann
2016-09-10 19:22   ` arnold
2016-09-12  8:35     ` markus schnalke
2016-09-12  9:25       ` Joerg Schilling
2016-09-12 12:41         ` Tony Finch
2016-09-12 12:50           ` Joerg Schilling
2016-09-13  0:17             ` Sven Mascheck
2016-09-13  1:45               ` Sven Mascheck
2016-09-13  9:20               ` Joerg Schilling
2016-09-12 20:12       ` Dave Horsfall
2016-09-12 21:36         ` Dave Horsfall
2016-09-10 22:43   ` Dave Horsfall
2016-09-11  1:24     ` Ron Natalie
2016-09-11  2:39       ` arnold
2016-09-11  2:41         ` Ronald Natalie
2016-09-11  4:07         ` Dave Horsfall
2016-09-11  5:01           ` arnold
2016-09-12  5:49             ` Dave Horsfall
2016-07-15 12:27 Norman Wilson
2016-09-10  7:45 ` Dario Niedermann
2016-09-10  9:13   ` Michael Kjörling
2016-09-10  9:41     ` Joerg Schilling
2016-09-10 17:06     ` Random832
2016-09-10 17:45       ` Dario Niedermann
2016-09-10 19:53         ` Dan Cross
2016-09-10 20:02         ` Chet Ramey
2016-09-10 20:27           ` Dario Niedermann
2016-09-11 10:03         ` Diomidis Spinellis
2016-09-12 10:05         ` Jacob Goense
2016-07-15  4:29 Rudi Blom
2016-07-14 13:18 Diomidis Spinellis
2016-07-14 13:23 ` Clem Cole
2016-07-14 14:12   ` Mary Ann Horton
2016-07-14 22:36   ` Dave Horsfall
2016-07-14 22:47     ` Corey Lindsly
2016-07-14 22:49     ` Peter Jeremy
2016-07-14 23:27       ` Marc Rochkind
2016-07-15 10:13         ` Joerg Schilling
     [not found]       ` <CAH_OBieVFzPn93L8=_fmbUycZ7UmYdXiopC0vgei6RGDZp0mHw@mail.gmail.com>
     [not found]         ` <CAH_OBie_6gFy+BqkCMj+sr0NqTMNOQxvgWf6SQnHMJpn7DAytA@mail.gmail.com>
2016-07-14 23:56           ` shawn wilson
2016-07-15  1:04             ` Dave Horsfall
2016-07-15  1:22               ` Steve Nickolas
2016-07-15  2:25               ` arnold
2016-07-16  6:26                 ` Dave Horsfall
2016-07-15  2:25             ` Random832
2016-07-15  3:59               ` Dave Horsfall
2016-07-15  4:09                 ` Random832
2016-07-15 13:55                 ` Chet Ramey
2016-07-14 23:10     ` Ronald Natalie
2016-07-15  1:41       ` Nemo
2016-07-15  9:00     ` Tony Finch
2016-07-14 14:11 ` schoedel
2016-07-14 14:38   ` Diomidis Spinellis
2016-07-14 15:46 ` John Cowan
2016-07-14 16:30   ` Random832
2016-07-14 22:32 ` Dave Horsfall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160912014334.434304422E@lignose.oclsc.org \
    --to=norman@oclsc.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).