つまり以下である。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