blob: a68e9114ef7761174a9642688fb36aa661809610 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001# DO NOT EDIT. This file is generated from Config.src
2#
3# For a description of the syntax of this configuration file,
4# see docs/Kconfig-language.txt.
5#
6
7menu "Shells"
8
9
10choice
11 prompt "Choose which shell is aliased to 'sh' name"
12 default BUSYBOX_CONFIG_SH_IS_ASH
13 help
14 Choose which shell you want to be executed by 'sh' alias.
15 The ash shell is the most bash compatible and full featured one.
16
17# note: cannot use "select ASH" here, it breaks "make allnoconfig"
18config BUSYBOX_CONFIG_SH_IS_ASH
19 depends on !BUSYBOX_CONFIG_NOMMU
20 bool "ash"
21 select BUSYBOX_CONFIG_SHELL_ASH
22 help
23 Choose ash to be the shell executed by 'sh' name.
24 The ash code will be built into busybox. If you don't select
25 "ash" choice (CONFIG_ASH), this shell may only be invoked by
26 the name 'sh' (and not 'ash').
27
28config BUSYBOX_CONFIG_SH_IS_HUSH
29 bool "hush"
30 select BUSYBOX_CONFIG_SHELL_HUSH
31 help
32 Choose hush to be the shell executed by 'sh' name.
33 The hush code will be built into busybox. If you don't select
34 "hush" choice (CONFIG_HUSH), this shell may only be invoked by
35 the name 'sh' (and not 'hush').
36
37config BUSYBOX_CONFIG_SH_IS_NONE
38 bool "none"
39
40endchoice
41
42choice
43 prompt "Choose which shell is aliased to 'bash' name"
44 default BUSYBOX_CONFIG_BASH_IS_NONE
45 help
46 Choose which shell you want to be executed by 'bash' alias.
47 The ash shell is the most bash compatible and full featured one,
48 although compatibility is far from being complete.
49
50 Note that selecting this option does not switch on any bash
51 compatibility code. It merely makes it possible to install
52 /bin/bash (sym)link and run scripts which start with
53 #!/bin/bash line.
54
55 Many systems use it in scripts which use bash-specific features,
56 even simple ones like $RANDOM. Without this option, busybox
57 can't be used for running them because it won't recongnize
58 "bash" as a supported applet name.
59
60config BUSYBOX_CONFIG_BASH_IS_ASH
61 depends on !BUSYBOX_CONFIG_NOMMU
62 bool "ash"
63 select BUSYBOX_CONFIG_SHELL_ASH
64 help
65 Choose ash to be the shell executed by 'bash' name.
66 The ash code will be built into busybox. If you don't select
67 "ash" choice (CONFIG_ASH), this shell may only be invoked by
68 the name 'bash' (and not 'ash').
69
70config BUSYBOX_CONFIG_BASH_IS_HUSH
71 bool "hush"
72 select BUSYBOX_CONFIG_SHELL_HUSH
73 help
74 Choose hush to be the shell executed by 'bash' name.
75 The hush code will be built into busybox. If you don't select
76 "hush" choice (CONFIG_HUSH), this shell may only be invoked by
77 the name 'bash' (and not 'hush').
78
79config BUSYBOX_CONFIG_BASH_IS_NONE
80 bool "none"
81
82endchoice
83
84
85config BUSYBOX_CONFIG_SHELL_ASH
86 bool #hidden option
87 depends on !BUSYBOX_CONFIG_NOMMU
88
89config BUSYBOX_CONFIG_ASH
90 bool "ash (78 kb)"
91 default BUSYBOX_DEFAULT_ASH
92 depends on !BUSYBOX_CONFIG_NOMMU
93 select BUSYBOX_CONFIG_SHELL_ASH
94 help
95 The most complete and most pedantically correct shell included with
96 busybox. This shell is actually a derivative of the Debian 'dash'
97 shell (by Herbert Xu), which was created by porting the 'ash' shell
98 (written by Kenneth Almquist) from NetBSD.
99
100# ash options
101# note: Don't remove !NOMMU part in the next line; it would break
102# menuconfig's indenting.
103if !NOMMU && (BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH)
104
105config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
106 bool "Optimize for size instead of speed"
107 default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
108 depends on BUSYBOX_CONFIG_SHELL_ASH
109
110config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
111 bool "Use internal glob() implementation"
112 default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB # Y is bigger, but because of uclibc glob() bug, let Y be default for now
113 depends on BUSYBOX_CONFIG_SHELL_ASH
114 help
115 Do not use glob() function from libc, use internal implementation.
116 Use this if you are getting "glob.h: No such file or directory"
117 or similar build errors.
118 Note that as of now (2017-01), uclibc and musl glob() both have bugs
119 which would break ash if you select N here.
120
121config BUSYBOX_CONFIG_ASH_BASH_COMPAT
122 bool "bash-compatible extensions"
123 default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
124 depends on BUSYBOX_CONFIG_SHELL_ASH
125
126config BUSYBOX_CONFIG_ASH_BASH_SOURCE_CURDIR
127 bool "'source' and '.' builtins search current directory after $PATH"
128 default BUSYBOX_DEFAULT_ASH_BASH_SOURCE_CURDIR # do not encourage non-standard behavior
129 depends on BUSYBOX_CONFIG_ASH_BASH_COMPAT
130 help
131 This is not compliant with standards. Avoid if possible.
132
133config BUSYBOX_CONFIG_ASH_BASH_NOT_FOUND_HOOK
134 bool "command_not_found_handle hook support"
135 default BUSYBOX_DEFAULT_ASH_BASH_NOT_FOUND_HOOK
136 depends on BUSYBOX_CONFIG_ASH_BASH_COMPAT
137 help
138 Enable support for the 'command_not_found_handle' hook function,
139 from GNU bash, which allows for alternative command not found
140 handling.
141
142config BUSYBOX_CONFIG_ASH_JOB_CONTROL
143 bool "Job control"
144 default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
145 depends on BUSYBOX_CONFIG_SHELL_ASH
146
147config BUSYBOX_CONFIG_ASH_ALIAS
148 bool "Alias support"
149 default BUSYBOX_DEFAULT_ASH_ALIAS
150 depends on BUSYBOX_CONFIG_SHELL_ASH
151
152config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
153 bool "Pseudorandom generator and $RANDOM variable"
154 default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
155 depends on BUSYBOX_CONFIG_SHELL_ASH
156 help
157 Enable pseudorandom generator and dynamic variable "$RANDOM".
158 Each read of "$RANDOM" will generate a new pseudorandom value.
159 You can reset the generator by using a specified start value.
160 After "unset RANDOM" the generator will switch off and this
161 variable will no longer have special treatment.
162
163config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
164 bool "Expand prompt string"
165 default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
166 depends on BUSYBOX_CONFIG_SHELL_ASH
167 help
168 $PS# may contain volatile content, such as backquote commands.
169 This option recreates the prompt string from the environment
170 variable each time it is displayed.
171
172config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
173 bool "Idle timeout variable $TMOUT"
174 default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
175 depends on BUSYBOX_CONFIG_SHELL_ASH
176 help
177 Enable bash-like auto-logout after $TMOUT seconds of idle time.
178
179config BUSYBOX_CONFIG_ASH_MAIL
180 bool "Check for new mail in interactive shell"
181 default BUSYBOX_DEFAULT_ASH_MAIL
182 depends on BUSYBOX_CONFIG_SHELL_ASH
183 help
184 Enable "check for new mail" function:
185 if set, $MAIL file and $MAILPATH list of files
186 are checked for mtime changes, and "you have mail"
187 message is printed if change is detected.
188
189config BUSYBOX_CONFIG_ASH_ECHO
190 bool "echo builtin"
191 default BUSYBOX_DEFAULT_ASH_ECHO
192 depends on BUSYBOX_CONFIG_SHELL_ASH
193
194config BUSYBOX_CONFIG_ASH_PRINTF
195 bool "printf builtin"
196 default BUSYBOX_DEFAULT_ASH_PRINTF
197 depends on BUSYBOX_CONFIG_SHELL_ASH
198
199config BUSYBOX_CONFIG_ASH_TEST
200 bool "test builtin"
201 default BUSYBOX_DEFAULT_ASH_TEST
202 depends on BUSYBOX_CONFIG_SHELL_ASH
203
204config BUSYBOX_CONFIG_ASH_SLEEP
205 bool "sleep builtin"
206 default BUSYBOX_DEFAULT_ASH_SLEEP
207 depends on BUSYBOX_CONFIG_SHELL_ASH
208
209config BUSYBOX_CONFIG_ASH_HELP
210 bool "help builtin"
211 default BUSYBOX_DEFAULT_ASH_HELP
212 depends on BUSYBOX_CONFIG_SHELL_ASH
213
214config BUSYBOX_CONFIG_ASH_GETOPTS
215 bool "getopts builtin"
216 default BUSYBOX_DEFAULT_ASH_GETOPTS
217 depends on BUSYBOX_CONFIG_SHELL_ASH
218
219config BUSYBOX_CONFIG_ASH_CMDCMD
220 bool "command builtin"
221 default BUSYBOX_DEFAULT_ASH_CMDCMD
222 depends on BUSYBOX_CONFIG_SHELL_ASH
223 help
224 Enable support for the 'command' builtin, which allows
225 you to run the specified command or builtin,
226 even when there is a function with the same name.
227
228endif # ash options
229config BUSYBOX_CONFIG_CTTYHACK
230 bool "cttyhack (2.4 kb)"
231 default BUSYBOX_DEFAULT_CTTYHACK
232 help
233 One common problem reported on the mailing list is the "can't
234 access tty; job control turned off" error message, which typically
235 appears when one tries to use a shell with stdin/stdout on
236 /dev/console.
237 This device is special - it cannot be a controlling tty.
238
239 The proper solution is to use the correct device instead of
240 /dev/console.
241
242 cttyhack provides a "quick and dirty" solution to this problem.
243 It analyzes stdin with various ioctls, trying to determine whether
244 it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
245 On Linux it also checks sysfs for a pointer to the active console.
246 If cttyhack is able to find the real console device, it closes
247 stdin/out/err and reopens that device.
248 Then it executes the given program. Opening the device will make
249 that device a controlling tty. This may require cttyhack
250 to be a session leader.
251
252 Example for /etc/inittab (for busybox init):
253
254 ::respawn:/bin/cttyhack /bin/sh
255
256 Starting an interactive shell from boot shell script:
257
258 setsid cttyhack sh
259
260 Giving controlling tty to shell running with PID 1:
261
262 # exec cttyhack sh
263
264 Without cttyhack, you need to know exact tty name,
265 and do something like this:
266
267 # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
268
269 Starting getty on a controlling tty from a shell script:
270
271 # getty 115200 $(cttyhack)
272config BUSYBOX_CONFIG_HUSH
273 bool "hush (68 kb)"
274 default BUSYBOX_DEFAULT_HUSH
275 select BUSYBOX_CONFIG_SHELL_HUSH
276 help
277 hush is a small shell. It handles the normal flow control
278 constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
279 case/esac. Redirections, here documents, $((arithmetic))
280 and functions are supported.
281
282 It will compile and work on no-mmu systems.
283
284 It does not handle select, aliases, tilde expansion,
285 &>file and >&file redirection of stdout+stderr.
286
287config BUSYBOX_CONFIG_SHELL_HUSH
288 bool "Internal shell for embedded script support"
289 default BUSYBOX_DEFAULT_SHELL_HUSH
290
291# hush options
292# It's only needed to get "nice" menuconfig indenting.
293if SHELL_HUSH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
294
295config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
296 bool "bash-compatible extensions"
297 default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
298 depends on BUSYBOX_CONFIG_SHELL_HUSH
299
300config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
301 bool "Brace expansion"
302 default BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
303 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
304 help
305 Enable {abc,def} extension.
306
307config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
308 bool "'source' and '.' builtins search current directory after $PATH"
309 default BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR # do not encourage non-standard behavior
310 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
311 help
312 This is not compliant with standards. Avoid if possible.
313
314config BUSYBOX_CONFIG_HUSH_LINENO_VAR
315 bool "$LINENO variable (bashism)"
316 default BUSYBOX_DEFAULT_HUSH_LINENO_VAR
317 depends on BUSYBOX_CONFIG_SHELL_HUSH
318
319config BUSYBOX_CONFIG_HUSH_INTERACTIVE
320 bool "Interactive mode"
321 default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
322 depends on BUSYBOX_CONFIG_SHELL_HUSH
323 help
324 Enable interactive mode (prompt and command editing).
325 Without this, hush simply reads and executes commands
326 from stdin just like a shell script from a file.
327 No prompt, no PS1/PS2 magic shell variables.
328
329config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
330 bool "Save command history to .hush_history"
331 default BUSYBOX_DEFAULT_HUSH_SAVEHISTORY
332 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
333
334config BUSYBOX_CONFIG_HUSH_JOB
335 bool "Job control"
336 default BUSYBOX_DEFAULT_HUSH_JOB
337 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE
338 help
339 Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
340 command (not entire shell), fg/bg builtins work. Without this option,
341 "cmd &" still works by simply spawning a process and immediately
342 prompting for next command (or executing next command in a script),
343 but no separate process group is formed.
344
345config BUSYBOX_CONFIG_HUSH_TICK
346 bool "Support command substitution"
347 default BUSYBOX_DEFAULT_HUSH_TICK
348 depends on BUSYBOX_CONFIG_SHELL_HUSH
349 help
350 Enable `command` and $(command).
351
352config BUSYBOX_CONFIG_HUSH_IF
353 bool "Support if/then/elif/else/fi"
354 default BUSYBOX_DEFAULT_HUSH_IF
355 depends on BUSYBOX_CONFIG_SHELL_HUSH
356
357config BUSYBOX_CONFIG_HUSH_LOOPS
358 bool "Support for, while and until loops"
359 default BUSYBOX_DEFAULT_HUSH_LOOPS
360 depends on BUSYBOX_CONFIG_SHELL_HUSH
361
362config BUSYBOX_CONFIG_HUSH_CASE
363 bool "Support case ... esac statement"
364 default BUSYBOX_DEFAULT_HUSH_CASE
365 depends on BUSYBOX_CONFIG_SHELL_HUSH
366 help
367 Enable case ... esac statement. +400 bytes.
368
369config BUSYBOX_CONFIG_HUSH_FUNCTIONS
370 bool "Support funcname() { commands; } syntax"
371 default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
372 depends on BUSYBOX_CONFIG_SHELL_HUSH
373 help
374 Enable support for shell functions. +800 bytes.
375
376config BUSYBOX_CONFIG_HUSH_LOCAL
377 bool "local builtin"
378 default BUSYBOX_DEFAULT_HUSH_LOCAL
379 depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
380 help
381 Enable support for local variables in functions.
382
383config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
384 bool "Pseudorandom generator and $RANDOM variable"
385 default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
386 depends on BUSYBOX_CONFIG_SHELL_HUSH
387 help
388 Enable pseudorandom generator and dynamic variable "$RANDOM".
389 Each read of "$RANDOM" will generate a new pseudorandom value.
390
391config BUSYBOX_CONFIG_HUSH_MODE_X
392 bool "Support 'hush -x' option and 'set -x' command"
393 default BUSYBOX_DEFAULT_HUSH_MODE_X
394 depends on BUSYBOX_CONFIG_SHELL_HUSH
395 help
396 This instructs hush to print commands before execution.
397 Adds ~300 bytes.
398
399config BUSYBOX_CONFIG_HUSH_ECHO
400 bool "echo builtin"
401 default BUSYBOX_DEFAULT_HUSH_ECHO
402 depends on BUSYBOX_CONFIG_SHELL_HUSH
403
404config BUSYBOX_CONFIG_HUSH_PRINTF
405 bool "printf builtin"
406 default BUSYBOX_DEFAULT_HUSH_PRINTF
407 depends on BUSYBOX_CONFIG_SHELL_HUSH
408
409config BUSYBOX_CONFIG_HUSH_TEST
410 bool "test builtin"
411 default BUSYBOX_DEFAULT_HUSH_TEST
412 depends on BUSYBOX_CONFIG_SHELL_HUSH
413
414config BUSYBOX_CONFIG_HUSH_HELP
415 bool "help builtin"
416 default BUSYBOX_DEFAULT_HUSH_HELP
417 depends on BUSYBOX_CONFIG_SHELL_HUSH
418
419config BUSYBOX_CONFIG_HUSH_EXPORT
420 bool "export builtin"
421 default BUSYBOX_DEFAULT_HUSH_EXPORT
422 depends on BUSYBOX_CONFIG_SHELL_HUSH
423
424config BUSYBOX_CONFIG_HUSH_EXPORT_N
425 bool "Support 'export -n' option"
426 default BUSYBOX_DEFAULT_HUSH_EXPORT_N
427 depends on BUSYBOX_CONFIG_HUSH_EXPORT
428 help
429 export -n unexports variables. It is a bash extension.
430
431config BUSYBOX_CONFIG_HUSH_READONLY
432 bool "readonly builtin"
433 default BUSYBOX_DEFAULT_HUSH_READONLY
434 depends on BUSYBOX_CONFIG_SHELL_HUSH
435 help
436 Enable support for read-only variables.
437
438config BUSYBOX_CONFIG_HUSH_KILL
439 bool "kill builtin (supports kill %jobspec)"
440 default BUSYBOX_DEFAULT_HUSH_KILL
441 depends on BUSYBOX_CONFIG_SHELL_HUSH
442
443config BUSYBOX_CONFIG_HUSH_WAIT
444 bool "wait builtin"
445 default BUSYBOX_DEFAULT_HUSH_WAIT
446 depends on BUSYBOX_CONFIG_SHELL_HUSH
447
448config BUSYBOX_CONFIG_HUSH_COMMAND
449 bool "command builtin"
450 default BUSYBOX_DEFAULT_HUSH_COMMAND
451 depends on BUSYBOX_CONFIG_SHELL_HUSH
452
453config BUSYBOX_CONFIG_HUSH_TRAP
454 bool "trap builtin"
455 default BUSYBOX_DEFAULT_HUSH_TRAP
456 depends on BUSYBOX_CONFIG_SHELL_HUSH
457
458config BUSYBOX_CONFIG_HUSH_TYPE
459 bool "type builtin"
460 default BUSYBOX_DEFAULT_HUSH_TYPE
461 depends on BUSYBOX_CONFIG_SHELL_HUSH
462
463config BUSYBOX_CONFIG_HUSH_TIMES
464 bool "times builtin"
465 default BUSYBOX_DEFAULT_HUSH_TIMES
466 depends on BUSYBOX_CONFIG_SHELL_HUSH
467
468config BUSYBOX_CONFIG_HUSH_READ
469 bool "read builtin"
470 default BUSYBOX_DEFAULT_HUSH_READ
471 depends on BUSYBOX_CONFIG_SHELL_HUSH
472
473config BUSYBOX_CONFIG_HUSH_SET
474 bool "set builtin"
475 default BUSYBOX_DEFAULT_HUSH_SET
476 depends on BUSYBOX_CONFIG_SHELL_HUSH
477
478config BUSYBOX_CONFIG_HUSH_UNSET
479 bool "unset builtin"
480 default BUSYBOX_DEFAULT_HUSH_UNSET
481 depends on BUSYBOX_CONFIG_SHELL_HUSH
482
483config BUSYBOX_CONFIG_HUSH_ULIMIT
484 bool "ulimit builtin"
485 default BUSYBOX_DEFAULT_HUSH_ULIMIT
486 depends on BUSYBOX_CONFIG_SHELL_HUSH
487
488config BUSYBOX_CONFIG_HUSH_UMASK
489 bool "umask builtin"
490 default BUSYBOX_DEFAULT_HUSH_UMASK
491 depends on BUSYBOX_CONFIG_SHELL_HUSH
492
493config BUSYBOX_CONFIG_HUSH_GETOPTS
494 bool "getopts builtin"
495 default BUSYBOX_DEFAULT_HUSH_GETOPTS
496 depends on BUSYBOX_CONFIG_SHELL_HUSH
497
498config BUSYBOX_CONFIG_HUSH_MEMLEAK
499 bool "memleak builtin (debugging)"
500 default BUSYBOX_DEFAULT_HUSH_MEMLEAK
501 depends on BUSYBOX_CONFIG_SHELL_HUSH
502
503endif # hush options
504
505
506comment "Options common to all shells"
507if BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
508
509config BUSYBOX_CONFIG_FEATURE_SH_MATH
510 bool "POSIX math support"
511 default BUSYBOX_DEFAULT_FEATURE_SH_MATH
512 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
513 help
514 Enable math support in the shell via $((...)) syntax.
515
516config BUSYBOX_CONFIG_FEATURE_SH_MATH_64
517 bool "Extend POSIX math support to 64 bit"
518 default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64
519 depends on BUSYBOX_CONFIG_FEATURE_SH_MATH
520 help
521 Enable 64-bit math support in the shell. This will make the shell
522 slightly larger, but will allow computation with very large numbers.
523 This is not in POSIX, so do not rely on this in portable code.
524
525config BUSYBOX_CONFIG_FEATURE_SH_MATH_BASE
526 bool "Support BASE#nnnn literals"
527 default BUSYBOX_DEFAULT_FEATURE_SH_MATH_BASE
528 depends on BUSYBOX_CONFIG_FEATURE_SH_MATH
529
530config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
531 bool "Hide message on interactive shell startup"
532 default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
533 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
534 help
535 Remove the busybox introduction when starting a shell.
536
537config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
538 bool "Standalone shell"
539 default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
540 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
541 help
542 This option causes busybox shells to use busybox applets
543 in preference to executables in the PATH whenever possible. For
544 example, entering the command 'ifconfig' into the shell would cause
545 busybox to use the ifconfig busybox applet. Specifying the fully
546 qualified executable name, such as '/sbin/ifconfig' will still
547 execute the /sbin/ifconfig executable on the filesystem. This option
548 is generally used when creating a statically linked version of busybox
549 for use as a rescue shell, in the event that you screw up your system.
550
551 This is implemented by re-execing /proc/self/exe (typically)
552 with right parameters.
553
554 However, there are drawbacks: it is problematic in chroot jails
555 without mounted /proc, and ps/top may show command name as 'exe'
556 for applets started this way.
557
558config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
559 bool "Run 'nofork' applets directly"
560 default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
561 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
562 help
563 This option causes busybox shells to not execute typical
564 fork/exec/wait sequence, but call <applet>_main directly,
565 if possible. (Sometimes it is not possible: for example,
566 this is not possible in pipes).
567
568 This will be done only for some applets (those which are marked
569 NOFORK in include/applets.h).
570
571 This may significantly speed up some shell scripts.
572
573 This feature is relatively new. Use with care. Report bugs
574 to project mailing list.
575
576config BUSYBOX_CONFIG_FEATURE_SH_READ_FRAC
577 bool "read -t N.NNN support (+110 bytes)"
578 default BUSYBOX_DEFAULT_FEATURE_SH_READ_FRAC
579 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
580 help
581 Enable support for fractional second timeout in read builtin.
582
583config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
584 bool "Use $HISTFILESIZE"
585 default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
586 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
587 help
588 This option makes busybox shells to use $HISTFILESIZE variable
589 to set shell history size. Note that its max value is capped
590 by "History size" setting in library tuning section.
591
592config BUSYBOX_CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS
593 bool "Embed scripts in the binary"
594 default BUSYBOX_DEFAULT_FEATURE_SH_EMBEDDED_SCRIPTS
595 depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
596 help
597 Allow scripts to be compressed and embedded in the busybox
598 binary. The scripts should be placed in the 'embed' directory
599 at build time. Like applets, scripts can be run as
600 'busybox SCRIPT ...' or by linking their name to the binary.
601
602 This also allows applets to be implemented as scripts: place
603 the script in 'applets_sh' and a stub C file containing
604 configuration in the appropriate subsystem directory.
605
606endif # Options common to all shells
607
608endmenu