[3320] | 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
|
---|