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_BUILTIN_ECHO
107 bool " Enable builtin version of 'echo'"
109 depends on CONFIG_ASH
111 Enable support for echo, built in to ash.
113 # this entry also appears in coreutils/Config.in, next to the echo applet
114 config CONFIG_FEATURE_FANCY_ECHO
115 bool " Enable echo options (-n and -e)"
117 depends on CONFIG_ASH_BUILTIN_ECHO
119 This adds options (-n and -e) to echo.
121 config CONFIG_ASH_MAIL
122 bool " Check for new mail on interactive shells"
124 depends on CONFIG_ASH
126 Enable "check for new mail" in the ash shell.
128 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
129 bool " Optimize for size instead of speed"
131 depends on CONFIG_ASH
133 Compile ash for reduced size at price of speed.
135 config CONFIG_ASH_RANDOM_SUPPORT
136 bool " Enable pseudorandom generator and variable $RANDOM"
138 depends on CONFIG_ASH
140 Enable pseudorandom generator and dynamic variable "$RANDOM".
141 Each read of "$RANDOM" will generate a new pseudorandom value.
142 You can reset the generator by using a specified start value.
143 After "unset RANDOM" then generator will switch off and this
144 variable will no longer have special treatment.
150 hush is a very small shell (just 18k) and it has fairly complete
151 Bourne shell grammar. It even handles all the normal flow control
152 options such as if/then/elif/else/fi, for/in/do/done, while loops,
155 It does not handle case/esac, select, function, here documents ( <<
156 word ), arithmetic expansion, aliases, brace expansion, tilde
157 expansion, &> and >& redirection of stdout+stderr, etc.
164 lash is the very smallest shell (adds just 10k) and it is quite
165 usable as a command prompt, but it is not suitable for any but the
166 most trivial scripting (such as an initrd that calls insmod a few
167 times) since it does not understand any Bourne shell grammar. It
168 does handle pipes, redirects, and job control though. Adding in
169 command editing makes it a very nice lightweight command prompt.
176 The minix shell (adds just 30k) is quite complete and handles things
177 like for/do/done, case/esac and all the things you expect a Bourne
178 shell to do. It is not always pedantically correct about Bourne
179 shell grammar (try running the shell testscript "tests/sh.testcases"
180 on it and compare vs bash) but for most things it works quite well.
181 It also uses only vfork, so it can be used on uClinux systems.
183 comment "Bourne Shell Options"
184 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
186 config CONFIG_FEATURE_SH_EXTRA_QUIET
187 bool "Hide message on interactive shell startup"
189 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
191 Remove the busybox introduction when starting a shell.
193 config CONFIG_FEATURE_SH_STANDALONE_SHELL
194 bool "Standalone shell"
196 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
198 This option causes the selected busybox shell to use busybox applets
199 in preference to executables in the PATH whenever possible. For
200 example, entering the command 'ifconfig' into the shell would cause
201 busybox to use the ifconfig busybox applet. Specifying the fully
202 qualified executable name, such as '/sbin/ifconfig' will still
203 execute the /sbin/ifconfig executable on the filesystem. This option
204 is generally used when creating a staticly linked version of busybox
205 for use as a rescue shell, in the event that you screw up your system.
207 Note that when using this option, the shell will attempt to directly
208 run '/bin/busybox'. If you do not have the busybox binary sitting in
209 that exact location with that exact name, this option will not work at
212 config CONFIG_FEATURE_COMMAND_EDITING
213 bool "command line editing"
215 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
217 Enable command editing in shell.
219 config CONFIG_FEATURE_COMMAND_EDITING_VI
220 bool "vi-style line editing commands"
222 depends on CONFIG_FEATURE_COMMAND_EDITING
224 Enable vi-style line editing in the shell. This mode can be
225 turned on and off with "set -o vi" and "set +o vi".
227 config CONFIG_FEATURE_COMMAND_HISTORY
230 depends on CONFIG_FEATURE_COMMAND_EDITING
232 Specify command history size in shell.
234 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
235 bool "history saving"
237 depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
239 Enable history saving in ash shell.
241 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
242 bool "tab completion"
244 depends on CONFIG_FEATURE_COMMAND_EDITING
246 Enable tab completion in shell.
248 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
249 bool "username completion"
251 depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
253 Enable username completion in shell.
255 config CONFIG_FEATURE_SH_FANCY_PROMPT
256 bool "Fancy shell prompts"
258 depends on CONFIG_FEATURE_COMMAND_EDITING
260 Setting this option allows for prompts to use things like \w and
261 \$ and also using escape codes.