The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Brian Walden <tuhs@cuzuco.com>
To: <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] sh: cmd | >file
Date: Sun, 5 Jan 2020 22:24:06 -0500 (EST)	[thread overview]
Message-ID: <202001060324.0063O6lt010608@cuzuco.com> (raw)

More than you ever wanted to know about #
The first shell to use it as a comment was csh(1), Bill Joy did this.
This was also pre #! in the kernel so the shell had to exec scripts,
not the kernel. This had traditionally been done after the exec() failed
then shell ould run "sh argv[0]", but with two shells this was now a problem.
So csh would look at the first line of the script and if it was a #\n
it would exec csh on it if not it would exec sh(1) on it. This was check
was also placed into to BSD's (not v7 nor att's) bourne shell so it could
run csh scripts as well.

However this was not the first use of # as a comment character. That award
goes to Brian Kernighan's ratfor(1) (rational fortran) compiler in 1974-75.
Then Feldman used in make(1) in 1976, followed by Kernighan's m4(1), learn(1)
and most famously awk(1) in 1977

Bourne shell, written around 1976, eventualy picked this up later on but after
the initial v7 release.  And as some noted the : was kind of a comment, it
was a command that did an exit(0) orginally for labels for Thompson's
shell's goto command. The : command was eventually hard linked to the
true(1) command

Remember # was hard to type on teletypes as that was the erase character, so
to enter it, you needed to type \#
(# as erase and @ as line kill came from multics btw)
It was so hard to type that the orignal assember based on DEC PAL-11R,
that addressing syntax changed @ to * and # to $.
In DEC it would be--
MOV @X, R0;
In UNIX asm it became --
mov *x, r0
So this is also why C pointers use * notation.

-Brian

> From: Dave Horsfall dave at horsfall.org
>
>On Sat, 4 Jan 2020, Chet Ramey wrote:
>
>>> Which reminds me: which Shell introduced "#" as a true comment?
>>
>> Define "true comment." The v7 shell had `#' as the comment character, but
>> it only worked when in non-interactive shells. I think it was the Sys III
>> shell that made it work when the shell was interactive.
>
>Yes, that's what I meant.
>
>> This is, incidentally, why bash has the `interactive_comments' option,
>> which I saw in another message. BSD, which most of the GNU developers were
>> using at the (pre-POSIX) time, used the v7 shell and didn't have
>> interactive comments. When a sufficiently-advanced POSIX draft required
>> them, we added it.
>
>I never did catch up with all the options on the various shells; I just
>stick with the defaults in general.  Eg:
>
>     aneurin% man bash | wc -l
>       5947
>
>Life's too short...
>
>-- Dave

             reply	other threads:[~2020-01-06  3:41 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-06  3:24 Brian Walden [this message]
2020-01-06 15:42 ` Richard Salz
2020-01-06 15:45   ` Brantley Coile
  -- strict thread matches above, loose matches on Subject: below --
2020-01-07  5:03 Brian Walden
2020-01-07  4:49 Brian Walden
2020-01-06 19:47 Doug McIlroy
2020-01-06 16:11 Brian Walden
2020-01-06 16:33 ` Clem Cole
2020-01-04  2:58 Doug McIlroy
2020-01-04 10:07 ` markus schnalke
2020-01-04 11:47   ` Robert Clausecker
2020-01-04 22:31     ` Chet Ramey
2020-01-04 21:02   ` Dave Horsfall
2020-01-04 21:06     ` Jon Steinhart
2020-01-05  0:03       ` Eric Allman
2020-01-05  1:49         ` Adam Thornton
2020-01-05  2:44           ` Chet Ramey
2020-01-05  8:15             ` Brantley Coile
2020-01-05 15:16               ` Chet Ramey
2020-01-04 21:11     ` Dave Horsfall
2020-01-04 21:39       ` Warner Losh
2020-01-04 22:19         ` Terry Jones
2020-01-04 22:33           ` Chet Ramey
2020-01-04 23:53             ` Dave Horsfall
2020-01-05  0:04               ` Andreas Kusalananda Kähäri
2020-01-05  2:41               ` Chet Ramey
2020-01-05 13:45                 ` Sven Mascheck via TUHS
2020-01-05 15:18                   ` Chet Ramey
2020-01-05 21:21                 ` Dave Horsfall
2020-01-06 13:53                   ` Chet Ramey
2020-01-06 15:42                     ` Brantley Coile
2020-01-06 15:46                       ` arnold
2020-01-06 16:13                         ` Clem Cole
2020-01-06 20:44                           ` arnold
2020-01-06 20:51                             ` Steve Nickolas
2020-01-06 21:32                             ` Clem Cole
2020-01-06 21:39                               ` Brad Spencer
2020-01-06 21:29                         ` Dave Horsfall
2020-01-06 21:55                           ` Chet Ramey
2020-01-06 22:22                             ` Dave Horsfall
2020-01-06 22:52                             ` Dan Cross
2020-01-07  0:50                             ` Adam Thornton
2020-01-06 22:10                           ` Bakul Shah
2020-01-04 22:44           ` markus schnalke
2020-01-04 23:01             ` Terry Jones
2020-01-04 22:22         ` Dave Horsfall
2020-01-03 12:45 markus schnalke
2020-01-03 14:00 ` Steffen Nurpmeso
2020-01-03 17:03   ` Brian Zick
2020-01-03 17:18     ` markus schnalke
2020-01-04  0:53       ` Sven Mascheck via TUHS
2020-01-04 20:41         ` Steffen Nurpmeso
2020-01-03 19:38 ` markus schnalke
2020-01-03 19:44   ` Warner Losh
2020-01-03 22:49     ` Michael Parson
2020-01-03 23: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=202001060324.0063O6lt010608@cuzuco.com \
    --to=tuhs@cuzuco.com \
    --cc=tuhs@minnie.tuhs.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).