busybox/shell/Config.src
<<
>>
Prefs
   1#
   2# For a description of the syntax of this configuration file,
   3# see docs/Kconfig-language.txt.
   4#
   5
   6menu "Shells"
   7
   8
   9choice
  10        prompt "Choose which shell is aliased to 'sh' name"
  11        default SH_IS_ASH
  12        help
  13        Choose which shell you want to be executed by 'sh' alias.
  14        The ash shell is the most bash compatible and full featured one.
  15
  16# note: cannot use "select ASH" here, it breaks "make allnoconfig"
  17config SH_IS_ASH
  18        depends on !NOMMU
  19        bool "ash"
  20        help
  21        Choose ash to be the shell executed by 'sh' name.
  22        The ash code will be built into busybox. If you don't select
  23        "ash" choice (CONFIG_ASH), this shell may only be invoked by
  24        the name 'sh' (and not 'ash').
  25
  26config SH_IS_HUSH
  27        bool "hush"
  28        help
  29        Choose hush to be the shell executed by 'sh' name.
  30        The hush code will be built into busybox. If you don't select
  31        "hush" choice (CONFIG_HUSH), this shell may only be invoked by
  32        the name 'sh' (and not 'hush').
  33
  34config SH_IS_NONE
  35        bool "none"
  36
  37endchoice
  38
  39choice
  40        prompt "Choose which shell is aliased to 'bash' name"
  41        default BASH_IS_NONE
  42        help
  43        Choose which shell you want to be executed by 'bash' alias.
  44        The ash shell is the most bash compatible and full featured one,
  45        although compatibility is far from being complete.
  46
  47        Note that selecting this option does not switch on any bash
  48        compatibility code. It merely makes it possible to install
  49        /bin/bash (sym)link and run scripts which start with
  50        #!/bin/bash line.
  51
  52        Many systems use it in scripts which use bash-specific features,
  53        even simple ones like $RANDOM. Without this option, busybox
  54        can't be used for running them because it won't recongnize
  55        "bash" as a supported applet name.
  56
  57config BASH_IS_ASH
  58        depends on !NOMMU
  59        bool "ash"
  60        help
  61        Choose ash to be the shell executed by 'bash' name.
  62        The ash code will be built into busybox. If you don't select
  63        "ash" choice (CONFIG_ASH), this shell may only be invoked by
  64        the name 'bash' (and not 'ash').
  65
  66config BASH_IS_HUSH
  67        bool "hush"
  68        help
  69        Choose hush to be the shell executed by 'bash' name.
  70        The hush code will be built into busybox. If you don't select
  71        "hush" choice (CONFIG_HUSH), this shell may only be invoked by
  72        the name 'bash' (and not 'hush').
  73
  74config BASH_IS_NONE
  75        bool "none"
  76
  77endchoice
  78
  79
  80INSERT
  81
  82
  83comment "Options common to all shells"
  84if ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
  85
  86config FEATURE_SH_MATH
  87        bool "POSIX math support"
  88        default y
  89        depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
  90        help
  91        Enable math support in the shell via $((...)) syntax.
  92
  93config FEATURE_SH_MATH_64
  94        bool "Extend POSIX math support to 64 bit"
  95        default y
  96        depends on FEATURE_SH_MATH
  97        help
  98        Enable 64-bit math support in the shell. This will make the shell
  99        slightly larger, but will allow computation with very large numbers.
 100        This is not in POSIX, so do not rely on this in portable code.
 101
 102config FEATURE_SH_MATH_BASE
 103        bool "Support BASE#nnnn literals"
 104        default y
 105        depends on FEATURE_SH_MATH
 106
 107config FEATURE_SH_EXTRA_QUIET
 108        bool "Hide message on interactive shell startup"
 109        default y
 110        depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
 111        help
 112        Remove the busybox introduction when starting a shell.
 113
 114config FEATURE_SH_STANDALONE
 115        bool "Standalone shell"
 116        default n
 117        depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
 118        help
 119        This option causes busybox shells to use busybox applets
 120        in preference to executables in the PATH whenever possible. For
 121        example, entering the command 'ifconfig' into the shell would cause
 122        busybox to use the ifconfig busybox applet. Specifying the fully
 123        qualified executable name, such as '/sbin/ifconfig' will still
 124        execute the /sbin/ifconfig executable on the filesystem. This option
 125        is generally used when creating a statically linked version of busybox
 126        for use as a rescue shell, in the event that you screw up your system.
 127
 128        This is implemented by re-execing /proc/self/exe (typically)
 129        with right parameters.
 130
 131        However, there are drawbacks: it is problematic in chroot jails
 132        without mounted /proc, and ps/top may show command name as 'exe'
 133        for applets started this way.
 134
 135config FEATURE_SH_NOFORK
 136        bool "Run 'nofork' applets directly"
 137        default n
 138        depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
 139        help
 140        This option causes busybox shells to not execute typical
 141        fork/exec/wait sequence, but call <applet>_main directly,
 142        if possible. (Sometimes it is not possible: for example,
 143        this is not possible in pipes).
 144
 145        This will be done only for some applets (those which are marked
 146        NOFORK in include/applets.h).
 147
 148        This may significantly speed up some shell scripts.
 149
 150        This feature is relatively new. Use with care. Report bugs
 151        to project mailing list.
 152
 153config FEATURE_SH_READ_FRAC
 154        bool "read -t N.NNN support (+110 bytes)"
 155        default y
 156        depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
 157        help
 158        Enable support for fractional second timeout in read builtin.
 159
 160config FEATURE_SH_HISTFILESIZE
 161        bool "Use $HISTFILESIZE"
 162        default y
 163        depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
 164        help
 165        This option makes busybox shells to use $HISTFILESIZE variable
 166        to set shell history size. Note that its max value is capped
 167        by "History size" setting in library tuning section.
 168
 169config FEATURE_SH_EMBEDDED_SCRIPTS
 170        bool "Embed scripts in the binary"
 171        default y
 172        depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
 173        help
 174        Allow scripts to be compressed and embedded in the busybox
 175        binary. The scripts should be placed in the 'embed' directory
 176        at build time. Like applets, scripts can be run as
 177        'busybox SCRIPT ...' or by linking their name to the binary.
 178
 179        This also allows applets to be implemented as scripts: place
 180        the script in 'applets_sh' and a stub C file containing
 181        configuration in the appropriate subsystem directory.
 182
 183endif # Options common to all shells
 184
 185endmenu
 186