but I want to unexport the MODE (not turn to be `””`, should be truly non-defined).
export -n MODE
export [-fn] [name[=word]] ... export -p The supplied names are marked for automatic export to the en‐ vironment of subsequently executed commands. If the -f op‐ tion is given, the names refer to functions. If no names are given, or if the -p option is supplied, a list of names of all exported variables is printed. The -n option causes the export property to be removed from each name. If a variable name is followed by =word, the value of the variable is set to word. export returns an exit status of 0 unless an in‐ valid option is encountered, one of the names is not a valid shell variable name, or -f is supplied with a name that is not a function.
unset [-fv] [-n] [name ...] For each name, remove the corresponding variable or function. If the -v option is given, each name refers to a shell variable, and that variable is removed. Read-only variables may not be unset. If -f is speci‐ fied, each name refers to a shell function, and the function definition is removed. If the -n option is supplied, and name is a variable with the nameref attribute, name will be unset rather than the variable it references. -n has no effect if the -f option is supplied. If no options are supplied, each name refers to a variable; if there is no variable by that name, any function with that name is unset. Each unset variable or function is removed from the envi‐ ronment passed to subsequent commands. If any of COMP_WORDBREAKS, RANDOM, SECONDS, LINENO, HISTCMD, FUNCNAME, GROUPS, or DIRSTACK are unset, they lose their special properties, even if they are subse‐ quently reset. The exit status is true unless a name is readonly.