2 # For a description of the syntax of this configuration file,
3 # see scripts/kbuild/config-language.txt.
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_READ_NCHARS
57 bool " Enable 'read -n N' and 'read -s' support"
61 'read -n N' will return a value after N characters have been read.
62 'read -s' will read without echoing the user's input.
64 config CONFIG_ASH_READ_TIMEOUT
65 bool " Enable 'read -t S' support."
69 'read -t S' will return a value after S seconds have passed.
70 This implementation will allow fractional seconds, expressed
71 as a decimal fraction, e.g. 'read -t 2.5 foo'.
73 config CONFIG_ASH_ALIAS
74 bool " Enable alias support"
78 Enable alias support in the ash shell.
80 config CONFIG_ASH_MATH_SUPPORT
81 bool " Enable Posix math support"
85 Enable math support in the ash shell.
87 config CONFIG_ASH_MATH_SUPPORT_64
88 bool " Extend Posix math support to 64 bit"
90 depends on CONFIG_ASH_MATH_SUPPORT
92 Enable 64-bit math support in the ash shell. This will make
93 the shell slightly larger, but will allow computation with very
96 config CONFIG_ASH_GETOPTS
97 bool " Enable getopts builtin to parse positional parameters"
101 Enable getopts builtin in the ash shell.
103 config CONFIG_ASH_CMDCMD
104 bool " Enable cmdcmd to override shell builtins"
106 depends on CONFIG_ASH
108 Enable support for the ash 'command' builtin, which allows
109 you to run the specified command with the specified arguments,
110 even when there is an ash builtin command with the same name.
112 config CONFIG_ASH_BUILTIN_ECHO
113 bool " Enable builtin version of 'echo'"
115 depends on CONFIG_ASH
117 Enable support for echo, built in to ash.
119 # this entry also appears in coreutils/Config.in, next to the echo applet
120 config CONFIG_FEATURE_FANCY_ECHO
121 bool " Enable echo options (-n and -e)"
123 depends on CONFIG_ASH_BUILTIN_ECHO
125 This adds options (-n and -e) to echo.
127 config CONFIG_ASH_MAIL
128 bool " Check for new mail on interactive shells"
130 depends on CONFIG_ASH
132 Enable "check for new mail" in the ash shell.
134 config CONFIG_ASH_OPTIMIZE_FOR_SIZE
135 bool " Optimize for size instead of speed"
137 depends on CONFIG_ASH
139 Compile ash for reduced size at price of speed.
141 config CONFIG_ASH_RANDOM_SUPPORT
142 bool " Enable pseudorandom generator and variable $RANDOM"
144 depends on CONFIG_ASH
146 Enable pseudorandom generator and dynamic variable "$RANDOM".
147 Each read of "$RANDOM" will generate a new pseudorandom value.
148 You can reset the generator by using a specified start value.
149 After "unset RANDOM" then generator will switch off and this
150 variable will no longer have special treatment.
152 config CONFIG_ASH_EXPAND_PRMT
153 bool " Support expand PS#"
155 depends on CONFIG_ASH
157 "PS#" may be have commands. It option enable expand string
158 from prompt before each show.
165 hush is a very small shell (just 18k) and it has fairly complete
166 Bourne shell grammar. It even handles all the normal flow control
167 options such as if/then/elif/else/fi, for/in/do/done, while loops,
170 It does not handle case/esac, select, function, here documents ( <<
171 word ), arithmetic expansion, aliases, brace expansion, tilde
172 expansion, &> and >& redirection of stdout+stderr, etc.
179 lash is the very smallest shell (adds just 10k) and it is quite
180 usable as a command prompt, but it is not suitable for any but the
181 most trivial scripting (such as an initrd that calls insmod a few
182 times) since it does not understand any Bourne shell grammar. It
183 does handle pipes, redirects, and job control though. Adding in
184 command editing makes it a very nice lightweight command prompt.
191 The minix shell (adds just 30k) is quite complete and handles things
192 like for/do/done, case/esac and all the things you expect a Bourne
193 shell to do. It is not always pedantically correct about Bourne
194 shell grammar (try running the shell testscript "tests/sh.testcases"
195 on it and compare vs bash) but for most things it works quite well.
196 It also uses only vfork, so it can be used on uClinux systems.
198 comment "Bourne Shell Options"
199 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
201 config CONFIG_FEATURE_SH_EXTRA_QUIET
202 bool "Hide message on interactive shell startup"
204 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
206 Remove the busybox introduction when starting a shell.
208 config CONFIG_FEATURE_SH_STANDALONE_SHELL
209 bool "Standalone shell"
211 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
213 This option causes the selected busybox shell to use busybox applets
214 in preference to executables in the PATH whenever possible. For
215 example, entering the command 'ifconfig' into the shell would cause
216 busybox to use the ifconfig busybox applet. Specifying the fully
217 qualified executable name, such as '/sbin/ifconfig' will still
218 execute the /sbin/ifconfig executable on the filesystem. This option
219 is generally used when creating a staticly linked version of busybox
220 for use as a rescue shell, in the event that you screw up your system.
222 Note that when using this option, the shell will attempt to directly
223 run '/bin/busybox'. If you do not have the busybox binary sitting in
224 that exact location with that exact name, this option will not work at
227 config CONFIG_FEATURE_COMMAND_EDITING
228 bool "command line editing"
230 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
232 Enable command editing in shell.
234 config CONFIG_FEATURE_COMMAND_EDITING_VI
235 bool "vi-style line editing commands"
237 depends on CONFIG_FEATURE_COMMAND_EDITING
239 Enable vi-style line editing in the shell. This mode can be
240 turned on and off with "set -o vi" and "set +o vi".
242 config CONFIG_FEATURE_COMMAND_HISTORY
245 depends on CONFIG_FEATURE_COMMAND_EDITING
247 Specify command history size in shell.
249 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
250 bool "history saving"
252 depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
254 Enable history saving in ash shell.
256 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
257 bool "tab completion"
259 depends on CONFIG_FEATURE_COMMAND_EDITING
261 Enable tab completion in shell.
263 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
264 bool "username completion"
266 depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
268 Enable username completion in shell.
270 config CONFIG_FEATURE_SH_FANCY_PROMPT
271 bool "Fancy shell prompts"
273 depends on CONFIG_FEATURE_COMMAND_EDITING
275 Setting this option allows for prompts to use things like \w and
276 \$ and also using escape codes.