Root/package/busybox/config/shell/Config.in

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

Archive Download this file



interactive