I'm seeing what appears to be an inconsistency with using `readonly` on variables declared in a previous scope.
declare stringdeclare -i intdeclare -a array init_vars () { readonly string="foo" readonly int=100 readonly array=(1 2) # Print the (hopefully) readonly variables declare -p string int array} init_vars This prints the expected output (IMO): declare -r string="foo"declare -ir int="100"declare -ar array=([0]="1" [1]="2") Now if I attempt to do the same for local variables declared as such: foo () { local string local -i int local -a array init_vars} foo This prints different output for the indexed array only: declare -r string="foo"declare -ir int="100"declare -ar array Things get even more confusing if I declare an associative array, which readonly seems to think is now an indexed array, but maybe that's a different issue. Thoughts? TIA, Will