[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