zsh-users
 help / color / mirror / code / Atom feed
From: Ray Andrews <rayandrews@eastlink.ca>
To: zsh-users@zsh.org
Subject: Re: bash conversion trouble.
Date: Sat, 25 Feb 2017 11:13:10 -0800	[thread overview]
Message-ID: <afd827df-f319-83c7-f765-26cd3fd4539f@eastlink.ca> (raw)
In-Reply-To: <170225090218.ZM22334@torch.brasslantern.com>

On 25/02/17 09:02 AM, Bart Schaefer wrote:
> On Feb 25,  8:24am, Ray Andrews wrote:
> }
> } Just curious: why would that have been changed?
>
> This comes from zsh's original heritage as a bourne-shell-like shell
> intended for students who were trained on BSD csh.  Also this happened
> before ksh was widely available outside an AT&T research lab so there
> was no bourne-shell array syntax to "change".
>
> Exactly why csh adopted 1-based arrays is probably lost to history at
> this point, but I suspect the argument goes something like this.
>
> When invoking a script e.g. "prog this is a test", internally $0 is
> "prog" and the arguments are $1 = this, $2 = is, etc.  Therefore when
> referring to the positional paramters, counting always starts from 1.
> Consequently it "makes sense" to have other arrays also count from 1,
> so that e.g.
>
>      newarray=("$@")
>      if [ "$newarray[1]" = "$1" ]; then echo copied correctly; fi
>
> It's strange to have to adjust thinking to zero-based for other arrays
> when the most obvious default array seems to start at 1.
>
Interesting.  So bash and ksh went one way an zsh and csh went the 
other.  Obviously the decision was made in the context of the time, but 
I'd have expected zsh to go with bash.  One hears nothing but bad things 
about csh.  But it's good to stop looking for some deep logic to it and 
just realize that it's arbitrary. The only real irritation is that it 
isn't consistent.  Yeah, why not just use natural counting?   That 
array[9] is the tenth element has always seemed a bit dumb but I'm used 
to it from C.


  reply	other threads:[~2017-02-25 19:43 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-25  1:35 Ray Andrews
2017-02-25  4:41 ` Bart Schaefer
2017-02-25 15:13   ` Ray Andrews
2017-02-25 15:26     ` Peter Stephenson
2017-02-25 15:55       ` Bart Schaefer
2017-02-25 16:24         ` Ray Andrews
2017-02-25 17:02           ` Bart Schaefer
2017-02-25 19:13             ` Ray Andrews [this message]
2017-02-25 20:09               ` Bart Schaefer
2017-02-26  5:05                 ` Ray Andrews
2017-02-26 17:19                   ` Bart Schaefer
2017-02-26 18:03                     ` Ray Andrews
2017-02-26 21:10                       ` Shell history (Re: bash conversion trouble.) Bart Schaefer
2017-02-26 23:23                         ` Ray Andrews
2017-02-28 15:56             ` bash conversion trouble Stephane Chazelas
2017-02-28 19:27               ` Ray Andrews

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=afd827df-f319-83c7-f765-26cd3fd4539f@eastlink.ca \
    --to=rayandrews@eastlink.ca \
    --cc=zsh-users@zsh.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.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

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