Problemas de escopo em diferentes linguagens de shell?
Parece que pdksh e mksh tem a implementação de escopo que eu esperava.
Por exemplo:
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 e mksh produzem meu resultado esperado:
global
f
g
global
E o Bash falha:
line 5: local: x: readonly variable
Dash e Ksh93 também falharam na minha expectativa. (Eu mudeilocal
paratypeset
no teste de Ksh93.)
Isso parece confuso.
ATUALIZAÇÃO: editei a pergunta. A questão anterior não é declarada de maneira clara.