つまり以下である。main の中で local 属性付きの _main_local という変数を作ったが、この変数が main から呼び出された func1 の中で参照できてしまう。
$ cat --number test.sh 1 #!/bin/dash 2 set -eux; 3 4 func0 () { 5 local _func0_local='func0 local'; 6 } 7 8 func1 () { 9 echo "${_main_local}" 10 echo "${_func0_local}" 11 } 12 13 main () { 14 local _main_local='main local'; 15 func0; 16 func1; 17 } 18 19 main; 20 21 exit 0; $ sh test.sh + main + local _main_local=main local + func0 + local _func0_local=func0 local + func1 + echo main local main local test.sh: 10: test.sh: _func0_local: parameter not set