unset is a builtin Unixshell command implemented by both the Bourne shell family of shells (sh, ksh, bash, etc.) and the C shell family of shells (csh, tcsh, etc.). It unsets a shell variable, removing it from memory and the shell's exported environment. It is implemented as a shell builtin, because it directly manipulates the internals of the shell.
Read-only shell variables cannot be unset. If one tries to unset a read-only variable, the unset command will print an error message and return a non-zero exit code. For more information on read-only variables, see readonly.