[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bash-bug
Subject:    Re: comment on RFE: 'shift'' [N] ARRAYNAME
From:       L A Walsh <bash () tlinx ! org>
Date:       2018-09-27 17:56:45
Message-ID: 5BAD19DD.7090203 () tlinx ! org
[Download RAW message or body]



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




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic