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_TIMEOUT
57 bool " Enable read timeout support."
59 depends on CONFIG_ASH_JOB_CONTROL
61 This option provides read -t <seconds> support.
63 read builtin which allows the function to pass control back
64 if no character input is read from the terminal within a set
67 config CONFIG_ASH_ALIAS
68 bool " Enable alias support"
72 Enable alias support in the ash shell.
74 config CONFIG_ASH_MATH_SUPPORT
75 bool " Enable Posix math support"
79 Enable math support in the ash shell.
81 config CONFIG_ASH_MATH_SUPPORT_64
82 bool " Extend Posix math support to 64 bit"
84 depends on CONFIG_ASH_MATH_SUPPORT
86 Enable 64-bit math support in the ash shell. This will make
87 the shell slightly larger, but will allow computation with very
90 config CONFIG_ASH_GETOPTS
91 bool " Enable getopts builtin to parse positional parameters"
95 Enable getopts builtin in the ash shell.
97 config CONFIG_ASH_CMDCMD
98 bool " Enable cmdcmd to override shell builtins"
100 depends on CONFIG_ASH
102 Enable support for the ash 'command' builtin, which allows
103 you to run the specified command with the specified arguments,
104 even when there is an ash builtin command with the same name.
106 config CONFIG_ASH_MAIL
107 bool " Check for new mail on interactive shells"
109 depends on CONFIG_ASH
111 Enable "check for new mail" in the ash shell.
113 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
114 bool " Optimize for size instead of speed"
116 depends on CONFIG_ASH
118 Compile ash for reduced size at price of speed.
120 config CONFIG_ASH_RANDOM_SUPPORT
121 bool " Enable pseudorandom generator and variable $RANDOM"
123 depends on CONFIG_ASH
125 Enable pseudorandom generator and dynamic variable "$RANDOM".
126 Each read of "$RANDOM" will generate a new pseudorandom value.
127 You can reset the generator by using a specified start value.
128 After "unset RANDOM" then generator will switch off and this
129 variable will no longer have special treatment.
135 hush is a very small shell (just 18k) and it has fairly complete
136 Bourne shell grammar. It even handles all the normal flow control
137 options such as if/then/elif/else/fi, for/in/do/done, while loops,
140 It does not handle case/esac, select, function, here documents ( <<
141 word ), arithmetic expansion, aliases, brace expansion, tilde
142 expansion, &> and >& redirection of stdout+stderr, etc.
149 lash is the very smallest shell (adds just 10k) and it is quite
150 usable as a command prompt, but it is not suitable for any but the
151 most trivial scripting (such as an initrd that calls insmod a few
152 times) since it does not understand any Bourne shell grammar. It
153 does handle pipes, redirects, and job control though. Adding in
154 command editing makes it a very nice lightweight command prompt.
161 The minix shell (adds just 30k) is quite complete and handles things
162 like for/do/done, case/esac and all the things you expect a Bourne
163 shell to do. It is not always pedantically correct about Bourne
164 shell grammar (try running the shell testscript "tests/sh.testcases"
165 on it and compare vs bash) but for most things it works quite well.
166 It also uses only vfork, so it can be used on uClinux systems.
168 comment "Bourne Shell Options"
169 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
171 config CONFIG_FEATURE_SH_EXTRA_QUIET
172 bool "Hide message on interactive shell startup"
174 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
176 Remove the busybox introduction when starting a shell.
178 config CONFIG_FEATURE_SH_STANDALONE_SHELL
179 bool "Standalone shell"
181 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
183 This option causes the selected busybox shell to use busybox applets
184 in preference to executables in the PATH whenever possible. For
185 example, entering the command 'ifconfig' into the shell would cause
186 busybox to use the ifconfig busybox applet. Specifying the fully
187 qualified executable name, such as '/sbin/ifconfig' will still
188 execute the /sbin/ifconfig executable on the filesystem. This option
189 is generally used when creating a staticly linked version of busybox
190 for use as a rescue shell, in the event that you screw up your system.
192 Note that when using this option, the shell will attempt to directly
193 run '/bin/busybox'. If you do not have the busybox binary sitting in
194 that exact location with that exact name, this option will not work at
197 config CONFIG_FEATURE_COMMAND_EDITING
198 bool "command line editing"
200 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
202 Enable command editing in shell.
204 config CONFIG_FEATURE_COMMAND_EDITING_VI
205 bool "vi-style line editing commands"
207 depends on CONFIG_FEATURE_COMMAND_EDITING
209 Enable vi-style line editing in the shell. This mode can be
210 turned on and off with "set -o vi" and "set +o vi".
212 config CONFIG_FEATURE_COMMAND_HISTORY
215 depends on CONFIG_FEATURE_COMMAND_EDITING
217 Specify command history size in shell.
219 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
220 bool "history saving"
222 depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
224 Enable history saving in ash shell.
226 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
227 bool "tab completion"
229 depends on CONFIG_FEATURE_COMMAND_EDITING
231 Enable tab completion in shell.
233 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
234 bool "username completion"
236 depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
238 Enable username completion in shell.
240 config CONFIG_FEATURE_SH_FANCY_PROMPT
241 bool "Fancy shell prompts"
243 depends on CONFIG_FEATURE_COMMAND_EDITING
245 Setting this option allows for prompts to use things like \w and
246 \$ and also using escape codes.