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.
146 config CONFIG_ASH_EXPAND_PRMT
147 bool " Support expand PS#"
149 depends on CONFIG_ASH
151 "PS#" may be have commands. It option enable expand string
152 from prompt before each show.
159 hush is a very small shell (just 18k) and it has fairly complete
160 Bourne shell grammar. It even handles all the normal flow control
161 options such as if/then/elif/else/fi, for/in/do/done, while loops,
164 It does not handle case/esac, select, function, here documents ( <<
165 word ), arithmetic expansion, aliases, brace expansion, tilde
166 expansion, &> and >& redirection of stdout+stderr, etc.
173 lash is the very smallest shell (adds just 10k) and it is quite
174 usable as a command prompt, but it is not suitable for any but the
175 most trivial scripting (such as an initrd that calls insmod a few
176 times) since it does not understand any Bourne shell grammar. It
177 does handle pipes, redirects, and job control though. Adding in
178 command editing makes it a very nice lightweight command prompt.
185 The minix shell (adds just 30k) is quite complete and handles things
186 like for/do/done, case/esac and all the things you expect a Bourne
187 shell to do. It is not always pedantically correct about Bourne
188 shell grammar (try running the shell testscript "tests/sh.testcases"
189 on it and compare vs bash) but for most things it works quite well.
190 It also uses only vfork, so it can be used on uClinux systems.
192 comment "Bourne Shell Options"
193 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
195 config CONFIG_FEATURE_SH_EXTRA_QUIET
196 bool "Hide message on interactive shell startup"
198 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
200 Remove the busybox introduction when starting a shell.
202 config CONFIG_FEATURE_SH_STANDALONE_SHELL
203 bool "Standalone shell"
205 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
207 This option causes the selected busybox shell to use busybox applets
208 in preference to executables in the PATH whenever possible. For
209 example, entering the command 'ifconfig' into the shell would cause
210 busybox to use the ifconfig busybox applet. Specifying the fully
211 qualified executable name, such as '/sbin/ifconfig' will still
212 execute the /sbin/ifconfig executable on the filesystem. This option
213 is generally used when creating a staticly linked version of busybox
214 for use as a rescue shell, in the event that you screw up your system.
216 Note that when using this option, the shell will attempt to directly
217 run '/bin/busybox'. If you do not have the busybox binary sitting in
218 that exact location with that exact name, this option will not work at
221 config CONFIG_FEATURE_COMMAND_EDITING
222 bool "command line editing"
224 depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
226 Enable command editing in shell.
228 config CONFIG_FEATURE_COMMAND_EDITING_VI
229 bool "vi-style line editing commands"
231 depends on CONFIG_FEATURE_COMMAND_EDITING
233 Enable vi-style line editing in the shell. This mode can be
234 turned on and off with "set -o vi" and "set +o vi".
236 config CONFIG_FEATURE_COMMAND_HISTORY
239 depends on CONFIG_FEATURE_COMMAND_EDITING
241 Specify command history size in shell.
243 config CONFIG_FEATURE_COMMAND_SAVEHISTORY
244 bool "history saving"
246 depends on CONFIG_ASH && CONFIG_FEATURE_COMMAND_EDITING
248 Enable history saving in ash shell.
250 config CONFIG_FEATURE_COMMAND_TAB_COMPLETION
251 bool "tab completion"
253 depends on CONFIG_FEATURE_COMMAND_EDITING
255 Enable tab completion in shell.
257 config CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
258 bool "username completion"
260 depends on CONFIG_FEATURE_COMMAND_TAB_COMPLETION
262 Enable username completion in shell.
264 config CONFIG_FEATURE_SH_FANCY_PROMPT
265 bool "Fancy shell prompts"
267 depends on CONFIG_FEATURE_COMMAND_EDITING
269 Setting this option allows for prompts to use things like \w and
270 \$ and also using escape codes.