2 # For a description of the syntax of this configuration file,
3 # see scripts/kbuild/config-language.txt.
6 menu "Another Bourne-like Shell"
9 prompt "Choose your default shell"
10 default CONFIG_FEATURE_SH_IS_NONE
12 Choose a shell. The ash shell is the most bash compatible
13 and full featured one.
15 config CONFIG_FEATURE_SH_IS_ASH
19 config CONFIG_FEATURE_SH_IS_HUSH
23 config CONFIG_FEATURE_SH_IS_LASH
27 config CONFIG_FEATURE_SH_IS_MSH
31 config CONFIG_FEATURE_SH_IS_NONE
40 Tha 'ash' shell adds about 60k in the default configuration and is
41 the most complete and most pedantically correct shell included with
42 busybox. This shell is actually a derivative of the Debian 'dash'
43 shell (by Herbert Xu), which was created by porting the 'ash' shell
44 (written by Kenneth Almquist) from NetBSD.
46 comment "Ash Shell Options"
49 config CONFIG_ASH_JOB_CONTROL
50 bool " Enable Job control"
54 Enable job control in the ash shell.
56 config CONFIG_ASH_ALIAS
57 bool " Enable alias support"
61 Enable alias support in the ash shell.
63 config CONFIG_ASH_MATH_SUPPORT
64 bool " Enable Posix math support"
68 Enable math support in the ash shell.
70 config CONFIG_ASH_GETOPTS
71 bool " Enable getopt builtin to parse positional parameters"
75 Enable builtin getopt in the ash shell.
77 config CONFIG_ASH_CMDCMD
78 bool " Enable cmdcmd to override shell builtins"
82 Enable support for the ash 'command' builtin, which allows
83 you to run the specified command with the specified arguments,
84 even when there is an ash builtin command with the same name.
86 config CONFIG_ASH_MAIL
87 bool " Check for new mail on interactive shells"
91 Enable "check for new mail" in the ash shell.
93 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
94 bool " Optimize for size instead of speed"
98 Compile ash for reduced size at price of speed.
100 config CONFIG_ASH_RANDOM_SUPPORT
101 bool " Enable pseudorandom generator and variable $RANDOM"
103 depends on CONFIG_ASH
105 Enable pseudorandom generator and dynamic variable "$RANDOM".
106 Each read of "$RANDOM" will generate a new pseudorandom value.
107 You can reset the generator by using a specified start value.
108 After "unset RANDOM" then generator will switch off and this
109 variable will no longer have special treatment.
115 hush is a very small shell (just 18k) and it has fairly complete
116 Bourne shell grammar. It even handles all the normal flow control
117 options such as if/then/elif/else/fi, for/in/do/done, while loops,
120 It does not handle case/esac, select, function, here documents ( <<
121 word ), arithmetic expansion, aliases, brace expansion, tilde
122 expansion, &> and >& redirection of stdout+stderr, etc.
129 lash is the very smallest shell (adds just 10k) and it is quite
130 usable as a command prompt, but it is not suitable for any but the
131 most trivial scripting (such as an initrd that calls insmod a few
132 times) since it does not understand any Bourne shell grammar. It
133 does handle pipes, redirects, and job control though. Adding in
134 command editing makes it a very nice lightweight command prompt.
141 The minix shell (adds just 30k) is quite complete and handles things
142 like for/do/done, case/esac and all the things you expect a Bourne
143 shell to do. It is not always pedantically correct about Bourne
144 shell grammar (try running the shell testscript "tests/sh.testcases"
145 on it and compare vs bash) but for most things it works quite well.
146 It also uses only vfork, so it can be used on uClinux systems.
148 comment "Bourne Shell Options"
149 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
151 config CONFIG_FEATURE_SH_EXTRA_QUIET
152 bool "Hide message on interactive shell startup"
154 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
156 Remove the busybox introduction when starting a shell.
158 config CONFIG_FEATURE_SH_STANDALONE_SHELL
159 bool "Standalone shell"
161 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
163 This option causes the selected busybox shell to use busybox applets
164 in preference to executables in the PATH whenever possible. For
165 example, entering the command 'ifconfig' into the shell would cause
166 busybox to use the ifconfig busybox applet. Specifying the fully
167 qualified executable name, such as '/sbin/ifconfig' will still
168 execute the /sbin/ifconfig executable on the filesystem. This option
169 is generally used when creating a staticly linked version of busybox
170 for use as a rescue shell, in the event that you screw up your system.
172 config CONFIG_FEATURE_COMMAND_EDITING
173 bool "command line editing"
175 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
177 Enable command editing in shell.
179 config CONFIG_FEATURE_COMMAND_HISTORY
182 depends on CONFIG_FEATURE_COMMAND_EDITING
184 Specify command history size in shell.
186 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
187 bool "history saving"
189 depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
191 Enable history saving in ash shell.
193 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
194 bool "tab completion"
196 depends on CONFIG_FEATURE_COMMAND_EDITING
198 Enable tab completion in shell.
200 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
201 bool "username completion"
203 depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
205 Enable username completion in shell.
207 config CONFIG_FEATURE_SH_FANCY_PROMPT
208 bool "Fancy shell prompts"
210 depends on CONFIG_FEATURE_COMMAND_EDITING
212 Setting this option allows for prompts to use things like \w and
213 \$ and also using escape codes.