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
next 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).