Environment variables are also used to control internal mpsh settings. True/False settings can be "true", "false", or 1 or 0.

The internal settings are:

mpsh-version - version string
mpsh-prompt - command prompt
mpsh-history - Show command history substitution?
mpsh-cdhistory - Show directory history substitution?
mpsh-hist-disp - History display format
mpsh-hist-disp-l - History "-l" display format
mpsh-jobs-disp - Jobs display format
mpsh-jobs-disp-l - Jobs "-l" display format
mpsh-umask - umask, in octal
mpsh-eof-exit - Exit on EOF?
mpsh-nice-def - nice value for "&"
mpsh-nice - nice value for "&-[-]"
mpsh-exp-nl - allow newlines in env alias expansion
mpsh-error-level - error verbosity level 0 - 3

For the four verbosity levels, error messages are formatted:

0: none
1: error
2: error [string]
3: error [string] errno-string

For example, the same error with different error level settings:

mpsh$ setenv mpsh-error-level=1
mpsh$ date > /sdfasdf
mpsh: Error redirecting stdout
mpsh$ setenv mpsh-error-level=3
mpsh$ date > /sdfasdf
mpsh: Error redirecting stdout [/sdfasdf] Permission denied

Internal setting variables do not get passed to child processes, but will expand on the command line:

mpsh$ echo $mpsh-version

Show mpsh internal settings:

mpsh$ setenv -si
mpsh$ setenv -qi

Reset mpsh internal settings to defaults:

mpsh$ setenv -ci