The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Robert Clausecker <fuz@fuz.su>
To: tuhs@minnie.tuhs.org
Subject: Re: [TUHS] sh: cmd | >file
Date: Sat, 4 Jan 2020 12:47:50 +0100	[thread overview]
Message-ID: <20200104114750.GA30769@fuz.su> (raw)
In-Reply-To: <1ingL0-5g6-00@marmaro.de>

Good morning!

On Sat, Jan 04, 2020 at 11:07:18AM +0100, markus schnalke wrote:
> One creates an empty file or truncates a file with:
> 
> 	>file
> 
> why not with:
> 
> 	:>file
> ?
> 
> To me it looks to be the more sensible ... more regular way.
> 
> IO redirections for the shell itself could be made with:
> 
> 	exec >file 5>&
> 
> no matter if ``>file'' is a simple command or not. Because of
> ``exec'' the line is valid syntax (although the grammer probably
> was retro-fitted), and the manpages (mksh, bash, heirloom sh) all
> document exec without a command as a separate case (and the code
> probably handles it as a separate case as well), thus nothing is
> gained here from making ``>file'' a simple command.
> 
> This is what wonder about: Why make ``>file'' a simple command,
> when -- as far as I can currently see -- there is no reason to do
> so, as all uses could have been achieved in more regular ways as
> well?

I think the key reason is that the shell does not build an AST from
the command you type, instead executing the phrases it encounters as it
sees them.  So when the shell sees ">file", it opens "file" for writing
in preparation of the rest of the command.  If no command comes, the
line is handled the same way as an empty one and the redirections are
discarded.  The shell could print an error here, but avoiding the side
effect of opening "file" for lines just consisting of redirects would be
difficult.  But then, why should it print an error?  The behaviour is
not harmful after all and I'd say that nobody really thought about this
being a thing when the shell was originally written.

Yours,
Robert Clausecker

-- 
()  ascii ribbon campaign - for an 8-bit clean world 
/\  - against html email  - against proprietary attachments

  reply	other threads:[~2020-01-04 11:56 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-04  2:58 Doug McIlroy
2020-01-04 10:07 ` markus schnalke
2020-01-04 11:47   ` Robert Clausecker [this message]
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
  -- 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-06  3:24 Brian Walden
2020-01-06 15:42 ` Richard Salz
2020-01-06 15:45   ` Brantley Coile
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=20200104114750.GA30769@fuz.su \
    --to=fuz@fuz.su \
    --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).