Please document on the man page somewhere that set -v, +v inside case statements is special: $ cat A case x in x) set -v : B case y in y) set -v : Z ;; esac ;; esac : C $ bash A : C
I.e., -v and +v in case statements are remembered, but only have effects after leaving all case statements. Unlike +x, -x. Same it turns out for dash(1). Bash 5.1.4.