Sorry, mailer sent previous mail before I was ready. Reposting.

Good day list -

There seems to be no way of testing if an array variable is associative or not ,

I have something like:

    declare -xr TYPE_ARRAY=0 TYPE_ASSOC=1
    function f()
    {  declare -n an_array=$1;
       local type=$2;
       case $type in
         $TYPE_ASSOC)
              an_array['some_value']=1;
              ;;
         $TYPE_ARRAY)
              an_array[0]=1;
       esac
   }

Now, if I call :
   declare -a my_array();  f my_array $TYPE_ASSOC;
I'll end up with no 'some_value' subscript in array.

It would be great if bash could provide some '-A'  conditional
expression operator
to test if a variable is an associative array or not .
Or perhaps 'declare -A identifier' could return non-zero if
'identifier' was not previously defined as an associative array, as
declare -F does for functions ?
Or is there some way to test if a variable is an associative array or not?

Thanks & Regards,
Jason


On 8/29/14, Jason Vas Dias <jason.vas.d...@gmail.com> wrote:
> Good day list -
>
> There seems to be no way of testing if an array variable is associative or
> not ,
> yet attempting to make associative assigments to a normal array results in
> a
> syntax error .
>
> I have something like:
>
>     declare -xr TYPE_ARRAY=0 TYPE_ASSOC=1
>     function f()
>     {  declare -n an_array=$1;
>        local type=$2;
>        case $type in
>          $TYPE_ASSOC)
>               an_array['some_value']=1;
>
>
>     }
>

Reply via email to