texinode(Compatibility)(Prompt Expansion)(Conditional Expressions)(Top)
chapter(Compatibility)
ifzman(\
sect(Compatibility)
)\
cindex(compatibility)
cindex(sh, compatibility)
cindex(ksh, compatibility)
Zsh tries to emulate bf(sh) or bf(ksh) when it is invoked as
tt(sh) or tt(ksh) respectively; more precisely, it looks at the first
letter of the name by which it was invoked, excluding any initial `tt(r)'
(assumed to stand for `restricted'), and if that is `tt(s)' or `tt(k)' it
will emulate bf(sh) or bf(ksh).  Furthermore, if invoked as tt(su) (which
happens on certain systems when the shell is executed by the tt(su)
command), the shell will try to find an alternative name from the tt(SHELL)
environment variable and perform emulation based on that.

In bf(sh) and bf(ksh) compatibility modes the following
parameters are not special and not initialized by the shell:
tt(ARGC),
tt(argv),
tt(cdpath),
tt(fignore),
tt(fpath),
tt(HISTCHARS),
tt(mailpath),
tt(MANPATH),
tt(manpath),
tt(path),
tt(prompt),
tt(PROMPT),
tt(PROMPT2),
tt(PROMPT3),
tt(PROMPT4),
tt(psvar),
tt(status),
tt(watch).

The usual zsh startup/shutdown scripts are not executed.  Login shells
source tt(/etc/profile) followed by tt($HOME/.profile).  If the
tt(ENV) environment variable is set on invocation, tt($ENV) is sourced
after the profile scripts.  The value of tt(ENV) is subjected to
parameter expansion, command substitution, and arithmetic expansion
before being interpreted as a pathname.  Note that the tt(PRIVILEGED)
option also affects the execution of startup files.

The following options are set if the shell is invoked as tt(sh) or
tt(ksh):
tt(NO_BAD_PATTERN),
tt(NO_BANG_HIST),
tt(NO_BG_NICE),
tt(NO_EQUALS),
tt(NO_FUNCTION_ARGZERO),
tt(GLOB_SUBST),
tt(NO_HUP),
tt(INTERACTIVE_COMMENTS),
tt(KSH_ARRAYS),
tt(NO_MULTIOS),
tt(NO_NOMATCH),
tt(NO_NOTIFY),
tt(POSIX_BUILTINS),
tt(NO_PROMPT_PERCENT),
tt(RM_STAR_SILENT),
tt(SH_FILE_EXPANSION),
tt(SH_GLOB),
tt(SH_OPTION_LETTERS),
tt(SH_WORD_SPLIT).
Additionally the tt(BSD_ECHO) and tt(IGNORE_BRACES)
options are set if zsh is invoked as tt(sh).
Also, the
tt(KSH_OPTION_PRINT),
tt(LOCAL_OPTIONS),
tt(PROMPT_BANG),
tt(PROMPT_SUBST)
and
tt(SINGLE_LINE_ZLE)
options are set if zsh is invoked as tt(ksh).
