Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14675 > unrolled thread

Re: comment on RFE: 'shift'' [N] ARRAYNAME

Started byL A Walsh <bash@tlinx.org>
First post2018-09-27 10:56 -0700
Last post2018-09-27 10:56 -0700
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: comment on RFE: 'shift'' [N] ARRAYNAME L A Walsh <bash@tlinx.org> - 2018-09-27 10:56 -0700

#14675 — Re: comment on RFE: 'shift'' [N] ARRAYNAME

FromL A Walsh <bash@tlinx.org>
Date2018-09-27 10:56 -0700
SubjectRe: comment on RFE: 'shift'' [N] ARRAYNAME
Message-ID<mailman.1411.1538071020.1284.bug-bash@gnu.org>

On 9/27/2018 5:35 AM, Greg Wooledge wrote:
> On Tue, Sep 25, 2018 at 05:17:27PM -0700, L A Walsh wrote:
>   
>> It struck me as it might be convenient if 'shift' could take an optional
>> arrayname as an argument.  Would that be possible or would it cause some
>> incompatibility?
>>     
>
> The biggest issue here is how you specify the arguments.
>
> Shift already takes one optional argument: the number of items to shift
> from the argv list.  Adding a second optional argument leads to a quagmire.
> Do you put the optional list name first, or do you put the optional number
> first?  If only one argument is given, is it a list name, or is it a number?
>
> (OK, granted, in bash it is not permitted to create an array whose name
> is strictly digits, but still.)
>
> If you wish to write an array-shifting builtin, it would be better to give
> it a new name.  Don't blindly copy perl.  It's not always the best example
> of language design.
>   
---
    Why do you think I was blindly copying perl.  My function example
was/is named lshift to differentiate it from rshift (if wanted),
but if it was a builtin there'd be no need for a different
name as it works and has compatible syntax with current 'shift'.

shift [N] ARRAYNAME.  Without ARRAYNAME, it's is the 'shift [N]' that
is already in bash.  There is no quagmire.  If the parameter following 
'shift'
is a number, it's a count.  If it isn't a number, its an ID.  Even
though my example and the subject showed the 'count' first, the order
really doesn't matter if you think about it...


[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web