¿Problemas de alcance en diferentes idiomas de shell?

arece que pdksh y mksh tienen la implementación de alcance que esperaba.

Por ejemplo

readonly x='global'

f() {
  local x
  readonly x='f'
  echo $x
}

g() {
  local x
  readonly x='g'
  echo $x
}

echo $x

f 
g

echo $x

pdksh y mksh producen mi resultado esperado:

global
f
g
global

Y Bash falla:

line 5: local: x: readonly variable

Dash y Ksh93 también fallaron mis expectativas. (He cambiadolocal atypeset en la prueba de Ksh93.)

Esto parece confuso.

UPDATE: he editado la pregunta. La pregunta anterior no se plantea de manera clara.

Respuestas a la pregunta(1)

Su respuesta a la pregunta