1 | # DO NOT EDIT. This file is generated from Config.src
|
---|
2 | #
|
---|
3 | # For a description of the syntax of this configuration file,
|
---|
4 | # see scripts/kbuild/config-language.txt.
|
---|
5 | #
|
---|
6 |
|
---|
7 | menu "Shells"
|
---|
8 |
|
---|
9 | config ASH
|
---|
10 | bool "ash"
|
---|
11 | default y
|
---|
12 | depends on !NOMMU
|
---|
13 | help
|
---|
14 | Tha 'ash' shell adds about 60k in the default configuration and is
|
---|
15 | the most complete and most pedantically correct shell included with
|
---|
16 | busybox. This shell is actually a derivative of the Debian 'dash'
|
---|
17 | shell (by Herbert Xu), which was created by porting the 'ash' shell
|
---|
18 | (written by Kenneth Almquist) from NetBSD.
|
---|
19 |
|
---|
20 | config ASH_BASH_COMPAT
|
---|
21 | bool "bash-compatible extensions"
|
---|
22 | default y
|
---|
23 | depends on ASH
|
---|
24 | help
|
---|
25 | Enable bash-compatible extensions.
|
---|
26 |
|
---|
27 | config ASH_JOB_CONTROL
|
---|
28 | bool "Job control"
|
---|
29 | default y
|
---|
30 | depends on ASH
|
---|
31 | help
|
---|
32 | Enable job control in the ash shell.
|
---|
33 |
|
---|
34 | config ASH_ALIAS
|
---|
35 | bool "alias support"
|
---|
36 | default y
|
---|
37 | depends on ASH
|
---|
38 | help
|
---|
39 | Enable alias support in the ash shell.
|
---|
40 |
|
---|
41 | config ASH_GETOPTS
|
---|
42 | bool "Builtin getopt to parse positional parameters"
|
---|
43 | default y
|
---|
44 | depends on ASH
|
---|
45 | help
|
---|
46 | Enable getopts builtin in the ash shell.
|
---|
47 |
|
---|
48 | config ASH_BUILTIN_ECHO
|
---|
49 | bool "Builtin version of 'echo'"
|
---|
50 | default y
|
---|
51 | depends on ASH
|
---|
52 | help
|
---|
53 | Enable support for echo, builtin to ash.
|
---|
54 |
|
---|
55 | config ASH_BUILTIN_PRINTF
|
---|
56 | bool "Builtin version of 'printf'"
|
---|
57 | default y
|
---|
58 | depends on ASH
|
---|
59 | help
|
---|
60 | Enable support for printf, builtin to ash.
|
---|
61 |
|
---|
62 | config ASH_BUILTIN_TEST
|
---|
63 | bool "Builtin version of 'test'"
|
---|
64 | default y
|
---|
65 | depends on ASH
|
---|
66 | help
|
---|
67 | Enable support for test, builtin to ash.
|
---|
68 |
|
---|
69 | config ASH_CMDCMD
|
---|
70 | bool "'command' command to override shell builtins"
|
---|
71 | default y
|
---|
72 | depends on ASH
|
---|
73 | help
|
---|
74 | Enable support for the ash 'command' builtin, which allows
|
---|
75 | you to run the specified command with the specified arguments,
|
---|
76 | even when there is an ash builtin command with the same name.
|
---|
77 |
|
---|
78 | config ASH_MAIL
|
---|
79 | bool "Check for new mail on interactive shells"
|
---|
80 | default n
|
---|
81 | depends on ASH
|
---|
82 | help
|
---|
83 | Enable "check for new mail" in the ash shell.
|
---|
84 |
|
---|
85 | config ASH_OPTIMIZE_FOR_SIZE
|
---|
86 | bool "Optimize for size instead of speed"
|
---|
87 | default y
|
---|
88 | depends on ASH
|
---|
89 | help
|
---|
90 | Compile ash for reduced size at the price of speed.
|
---|
91 |
|
---|
92 | config ASH_RANDOM_SUPPORT
|
---|
93 | bool "Pseudorandom generator and $RANDOM variable"
|
---|
94 | default y
|
---|
95 | depends on ASH
|
---|
96 | help
|
---|
97 | Enable pseudorandom generator and dynamic variable "$RANDOM".
|
---|
98 | Each read of "$RANDOM" will generate a new pseudorandom value.
|
---|
99 | You can reset the generator by using a specified start value.
|
---|
100 | After "unset RANDOM" the generator will switch off and this
|
---|
101 | variable will no longer have special treatment.
|
---|
102 |
|
---|
103 | config ASH_EXPAND_PRMT
|
---|
104 | bool "Expand prompt string"
|
---|
105 | default y
|
---|
106 | depends on ASH
|
---|
107 | help
|
---|
108 | "PS#" may contain volatile content, such as backquote commands.
|
---|
109 | This option recreates the prompt string from the environment
|
---|
110 | variable each time it is displayed.
|
---|
111 |
|
---|
112 | config CTTYHACK
|
---|
113 | bool "cttyhack"
|
---|
114 | default y
|
---|
115 | help
|
---|
116 | One common problem reported on the mailing list is "can't access tty;
|
---|
117 | job control turned off" error message which typically appears when
|
---|
118 | one tries to use shell with stdin/stdout opened to /dev/console.
|
---|
119 | This device is special - it cannot be a controlling tty.
|
---|
120 |
|
---|
121 | Proper solution is to use correct device instead of /dev/console.
|
---|
122 |
|
---|
123 | cttyhack provides "quick and dirty" solution to this problem.
|
---|
124 | It analyzes stdin with various ioctls, trying to determine whether
|
---|
125 | it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
|
---|
126 | If it detects one, it closes stdin/out/err and reopens that device.
|
---|
127 | Then it executes given program. Opening the device will make
|
---|
128 | that device a controlling tty. This may require cttyhack
|
---|
129 | to be a session leader.
|
---|
130 |
|
---|
131 | Example for /etc/inittab (for busybox init):
|
---|
132 |
|
---|
133 | ::respawn:/bin/cttyhack /bin/sh
|
---|
134 |
|
---|
135 | Starting an interactive shell from boot shell script:
|
---|
136 |
|
---|
137 | setsid cttyhack sh
|
---|
138 |
|
---|
139 | Giving controlling tty to shell running with PID 1:
|
---|
140 |
|
---|
141 | # exec cttyhack sh
|
---|
142 |
|
---|
143 | Without cttyhack, you need to know exact tty name,
|
---|
144 | and do something like this:
|
---|
145 |
|
---|
146 | # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
|
---|
147 |
|
---|
148 | config HUSH
|
---|
149 | bool "hush"
|
---|
150 | default y
|
---|
151 | help
|
---|
152 | hush is a small shell (25k). It handles the normal flow control
|
---|
153 | constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
|
---|
154 | case/esac. Redirections, here documents, $((arithmetic))
|
---|
155 | and functions are supported.
|
---|
156 |
|
---|
157 | It will compile and work on no-mmu systems.
|
---|
158 |
|
---|
159 | It does not handle select, aliases, tilde expansion,
|
---|
160 | &>file and >&file redirection of stdout+stderr.
|
---|
161 |
|
---|
162 | config HUSH_BASH_COMPAT
|
---|
163 | bool "bash-compatible extensions"
|
---|
164 | default y
|
---|
165 | depends on HUSH
|
---|
166 | help
|
---|
167 | Enable bash-compatible extensions.
|
---|
168 |
|
---|
169 | config HUSH_BRACE_EXPANSION
|
---|
170 | bool "Brace expansion"
|
---|
171 | default y
|
---|
172 | depends on HUSH_BASH_COMPAT
|
---|
173 | help
|
---|
174 | Enable {abc,def} extension.
|
---|
175 |
|
---|
176 | config HUSH_HELP
|
---|
177 | bool "help builtin"
|
---|
178 | default y
|
---|
179 | depends on HUSH
|
---|
180 | help
|
---|
181 | Enable help builtin in hush. Code size + ~1 kbyte.
|
---|
182 |
|
---|
183 | config HUSH_INTERACTIVE
|
---|
184 | bool "Interactive mode"
|
---|
185 | default y
|
---|
186 | depends on HUSH
|
---|
187 | help
|
---|
188 | Enable interactive mode (prompt and command editing).
|
---|
189 | Without this, hush simply reads and executes commands
|
---|
190 | from stdin just like a shell script from a file.
|
---|
191 | No prompt, no PS1/PS2 magic shell variables.
|
---|
192 |
|
---|
193 | config HUSH_SAVEHISTORY
|
---|
194 | bool "Save command history to .hush_history"
|
---|
195 | default y
|
---|
196 | depends on HUSH_INTERACTIVE && FEATURE_EDITING_SAVEHISTORY
|
---|
197 | help
|
---|
198 | Enable history saving in hush.
|
---|
199 |
|
---|
200 | config HUSH_JOB
|
---|
201 | bool "Job control"
|
---|
202 | default y
|
---|
203 | depends on HUSH_INTERACTIVE
|
---|
204 | help
|
---|
205 | Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
|
---|
206 | command (not entire shell), fg/bg builtins work. Without this option,
|
---|
207 | "cmd &" still works by simply spawning a process and immediately
|
---|
208 | prompting for next command (or executing next command in a script),
|
---|
209 | but no separate process group is formed.
|
---|
210 |
|
---|
211 | config HUSH_TICK
|
---|
212 | bool "Process substitution"
|
---|
213 | default y
|
---|
214 | depends on HUSH
|
---|
215 | help
|
---|
216 | Enable process substitution `command` and $(command) in hush.
|
---|
217 |
|
---|
218 | config HUSH_IF
|
---|
219 | bool "Support if/then/elif/else/fi"
|
---|
220 | default y
|
---|
221 | depends on HUSH
|
---|
222 | help
|
---|
223 | Enable if/then/elif/else/fi in hush.
|
---|
224 |
|
---|
225 | config HUSH_LOOPS
|
---|
226 | bool "Support for, while and until loops"
|
---|
227 | default y
|
---|
228 | depends on HUSH
|
---|
229 | help
|
---|
230 | Enable for, while and until loops in hush.
|
---|
231 |
|
---|
232 | config HUSH_CASE
|
---|
233 | bool "Support case ... esac statement"
|
---|
234 | default y
|
---|
235 | depends on HUSH
|
---|
236 | help
|
---|
237 | Enable case ... esac statement in hush. +400 bytes.
|
---|
238 |
|
---|
239 | config HUSH_FUNCTIONS
|
---|
240 | bool "Support funcname() { commands; } syntax"
|
---|
241 | default y
|
---|
242 | depends on HUSH
|
---|
243 | help
|
---|
244 | Enable support for shell functions in hush. +800 bytes.
|
---|
245 |
|
---|
246 | config HUSH_LOCAL
|
---|
247 | bool "Support local builtin"
|
---|
248 | default y
|
---|
249 | depends on HUSH_FUNCTIONS
|
---|
250 | help
|
---|
251 | Enable support for local variables in functions.
|
---|
252 |
|
---|
253 | config HUSH_RANDOM_SUPPORT
|
---|
254 | bool "Pseudorandom generator and $RANDOM variable"
|
---|
255 | default y
|
---|
256 | depends on HUSH
|
---|
257 | help
|
---|
258 | Enable pseudorandom generator and dynamic variable "$RANDOM".
|
---|
259 | Each read of "$RANDOM" will generate a new pseudorandom value.
|
---|
260 |
|
---|
261 | config HUSH_EXPORT_N
|
---|
262 | bool "Support 'export -n' option"
|
---|
263 | default y
|
---|
264 | depends on HUSH
|
---|
265 | help
|
---|
266 | export -n unexports variables. It is a bash extension.
|
---|
267 |
|
---|
268 | config HUSH_MODE_X
|
---|
269 | bool "Support 'hush -x' option and 'set -x' command"
|
---|
270 | default y
|
---|
271 | depends on HUSH
|
---|
272 | help
|
---|
273 | This instructs hush to print commands before execution.
|
---|
274 | Adds ~300 bytes.
|
---|
275 |
|
---|
276 | config MSH
|
---|
277 | bool "msh (deprecated: aliased to hush)"
|
---|
278 | default n
|
---|
279 | select HUSH
|
---|
280 | help
|
---|
281 | msh is deprecated and will be removed, please migrate to hush.
|
---|
282 |
|
---|
283 |
|
---|
284 | choice
|
---|
285 | prompt "Choose which shell is aliased to 'sh' name"
|
---|
286 | default FEATURE_SH_IS_ASH
|
---|
287 | help
|
---|
288 | Choose which shell you want to be executed by 'sh' alias.
|
---|
289 | The ash shell is the most bash compatible and full featured one.
|
---|
290 |
|
---|
291 | # note: cannot use "select ASH" here, it breaks "make allnoconfig"
|
---|
292 | config FEATURE_SH_IS_ASH
|
---|
293 | depends on ASH
|
---|
294 | bool "ash"
|
---|
295 | depends on !NOMMU
|
---|
296 |
|
---|
297 | config FEATURE_SH_IS_HUSH
|
---|
298 | depends on HUSH
|
---|
299 | bool "hush"
|
---|
300 |
|
---|
301 | config FEATURE_SH_IS_NONE
|
---|
302 | bool "none"
|
---|
303 |
|
---|
304 | endchoice
|
---|
305 |
|
---|
306 | choice
|
---|
307 | prompt "Choose which shell is aliased to 'bash' name"
|
---|
308 | default FEATURE_BASH_IS_NONE
|
---|
309 | help
|
---|
310 | Choose which shell you want to be executed by 'bash' alias.
|
---|
311 | The ash shell is the most bash compatible and full featured one.
|
---|
312 |
|
---|
313 | Note that selecting this option does not switch on any bash
|
---|
314 | compatibility code. It merely makes it possible to install
|
---|
315 | /bin/bash (sym)link and run scripts which start with
|
---|
316 | #!/bin/bash line.
|
---|
317 |
|
---|
318 | Many systems use it in scripts which use bash-specific features,
|
---|
319 | even simple ones like $RANDOM. Without this option, busybox
|
---|
320 | can't be used for running them because it won't recongnize
|
---|
321 | "bash" as a supported applet name.
|
---|
322 |
|
---|
323 | config FEATURE_BASH_IS_ASH
|
---|
324 | depends on ASH
|
---|
325 | bool "ash"
|
---|
326 | depends on !NOMMU
|
---|
327 |
|
---|
328 | config FEATURE_BASH_IS_HUSH
|
---|
329 | depends on HUSH
|
---|
330 | bool "hush"
|
---|
331 |
|
---|
332 | config FEATURE_BASH_IS_NONE
|
---|
333 | bool "none"
|
---|
334 |
|
---|
335 | endchoice
|
---|
336 |
|
---|
337 |
|
---|
338 | config SH_MATH_SUPPORT
|
---|
339 | bool "POSIX math support"
|
---|
340 | default y
|
---|
341 | depends on ASH || HUSH
|
---|
342 | help
|
---|
343 | Enable math support in the shell via $((...)) syntax.
|
---|
344 |
|
---|
345 | config SH_MATH_SUPPORT_64
|
---|
346 | bool "Extend POSIX math support to 64 bit"
|
---|
347 | default y
|
---|
348 | depends on SH_MATH_SUPPORT
|
---|
349 | help
|
---|
350 | Enable 64-bit math support in the shell. This will make the shell
|
---|
351 | slightly larger, but will allow computation with very large numbers.
|
---|
352 | This is not in POSIX, so do not rely on this in portable code.
|
---|
353 |
|
---|
354 | config FEATURE_SH_EXTRA_QUIET
|
---|
355 | bool "Hide message on interactive shell startup"
|
---|
356 | default y
|
---|
357 | depends on HUSH || ASH
|
---|
358 | help
|
---|
359 | Remove the busybox introduction when starting a shell.
|
---|
360 |
|
---|
361 | config FEATURE_SH_STANDALONE
|
---|
362 | bool "Standalone shell"
|
---|
363 | default n
|
---|
364 | depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS
|
---|
365 | help
|
---|
366 | This option causes busybox shells to use busybox applets
|
---|
367 | in preference to executables in the PATH whenever possible. For
|
---|
368 | example, entering the command 'ifconfig' into the shell would cause
|
---|
369 | busybox to use the ifconfig busybox applet. Specifying the fully
|
---|
370 | qualified executable name, such as '/sbin/ifconfig' will still
|
---|
371 | execute the /sbin/ifconfig executable on the filesystem. This option
|
---|
372 | is generally used when creating a statically linked version of busybox
|
---|
373 | for use as a rescue shell, in the event that you screw up your system.
|
---|
374 |
|
---|
375 | This is implemented by re-execing /proc/self/exe (typically)
|
---|
376 | with right parameters. Some selected applets ("NOFORK" applets)
|
---|
377 | can even be executed without creating new process.
|
---|
378 | Instead, busybox will call <applet>_main() internally.
|
---|
379 |
|
---|
380 | However, this causes problems in chroot jails without mounted /proc
|
---|
381 | and with ps/top (command name can be shown as 'exe' for applets
|
---|
382 | started this way).
|
---|
383 | # untrue?
|
---|
384 | # Note that this will *also* cause applets to take precedence
|
---|
385 | # over shell builtins of the same name. So turning this on will
|
---|
386 | # eliminate any performance gained by turning on the builtin "echo"
|
---|
387 | # and "test" commands in ash.
|
---|
388 | # untrue?
|
---|
389 | # Note that when using this option, the shell will attempt to directly
|
---|
390 | # run '/bin/busybox'. If you do not have the busybox binary sitting in
|
---|
391 | # that exact location with that exact name, this option will not work at
|
---|
392 | # all.
|
---|
393 |
|
---|
394 | config FEATURE_SH_NOFORK
|
---|
395 | bool "Run 'nofork' applets directly"
|
---|
396 | default n
|
---|
397 | depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS
|
---|
398 | help
|
---|
399 | This option causes busybox shells [currently only ash]
|
---|
400 | to not execute typical fork/exec/wait sequence, but call <applet>_main
|
---|
401 | directly, if possible. (Sometimes it is not possible: for example,
|
---|
402 | this is not possible in pipes).
|
---|
403 |
|
---|
404 | This will be done only for some applets (those which are marked
|
---|
405 | NOFORK in include/applets.h).
|
---|
406 |
|
---|
407 | This may significantly speed up some shell scripts.
|
---|
408 |
|
---|
409 | This feature is relatively new. Use with care.
|
---|
410 |
|
---|
411 | endmenu
|
---|