¿Qué puede ocurrir cuando una función de Bash asigna una variable sin declararla como local?
local
La asignación siempre falla porque las variables globales son de solo lectura dentro de las funciones.
La asignación puede cambiar una variable visible en otras partes del script.
El valor solo existe en un subshell nuevo que Bash siempre crea para la función.
Bash limita automáticamente todas las asignaciones de una función a esa función.