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