Oil has recursive data structures, although I'm still working out how to compose shell-like "procs" and functions which could return an associative array. We could just add them both naively but I think it would cause many shell programs to be a lot messier.
Sure but you can also declare global arrays in Awk. The point is that Awk and bash are the same in several respects, so you don't really gain anything by switching to one or the other:
- they don't have any garbage collection or ref counting
- they don't have recursive data structures
- you can't return any kind of array from a function
In bash you also can't pass an array to a function, but in Awk you can.
The problem of persisting arrays usually leads to handling them in bash.
Now you have two problems.[1]
[1] If you paraphrase Jamie Zawinski in an explanation, you then have two things to explain.