about summary refs log tree commit diff
path: root/Doc/Zsh/compat.yo
blob: 26f8fe896538084c5b79e7277160b2b27d456b50 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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 passed to it, which may not necessarily be the
name of the executable file, ignoring any initial `tt(-)' as well as
`tt(r)' (for restricted); an `tt(s)' or `tt(b)' will force
bf(sh) compatibility, while `tt(k)' will force bf(ksh) compatibility.  An
exception is if the name excluding any `tt(-)' is tt(su), in which case
the environment variable tt(SHELL) will be used to test the emulation;
this is to workaround a problem under some operating systems where the
tt(su) command does not change the name when executing a user shell.  Note
that, from within zsh itself, this mechanism can be invoked by `tt(ARGV0=sh
zsh ...)'.

In this emulation mode, 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).