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_EXTRA_QUIET 103 bool "Hide message on interactive shell startup" 104 default y 105 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 106 help 107 Remove the busybox introduction when starting a shell. 108 109config FEATURE_SH_STANDALONE 110 bool "Standalone shell" 111 default n 112 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 113 help 114 This option causes busybox shells to use busybox applets 115 in preference to executables in the PATH whenever possible. For 116 example, entering the command 'ifconfig' into the shell would cause 117 busybox to use the ifconfig busybox applet. Specifying the fully 118 qualified executable name, such as '/sbin/ifconfig' will still 119 execute the /sbin/ifconfig executable on the filesystem. This option 120 is generally used when creating a statically linked version of busybox 121 for use as a rescue shell, in the event that you screw up your system. 122 123 This is implemented by re-execing /proc/self/exe (typically) 124 with right parameters. 125 126 However, there are drawbacks: it is problematic in chroot jails 127 without mounted /proc, and ps/top may show command name as 'exe' 128 for applets started this way. 129 130config FEATURE_SH_NOFORK 131 bool "Run 'nofork' applets directly" 132 default n 133 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 134 help 135 This option causes busybox shells to not execute typical 136 fork/exec/wait sequence, but call <applet>_main directly, 137 if possible. (Sometimes it is not possible: for example, 138 this is not possible in pipes). 139 140 This will be done only for some applets (those which are marked 141 NOFORK in include/applets.h). 142 143 This may significantly speed up some shell scripts. 144 145 This feature is relatively new. Use with care. Report bugs 146 to project mailing list. 147 148config FEATURE_SH_READ_FRAC 149 bool "read -t N.NNN support (+110 bytes)" 150 default y 151 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 152 help 153 Enable support for fractional second timeout in read builtin. 154 155config FEATURE_SH_HISTFILESIZE 156 bool "Use $HISTFILESIZE" 157 default y 158 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 159 help 160 This option makes busybox shells to use $HISTFILESIZE variable 161 to set shell history size. Note that its max value is capped 162 by "History size" setting in library tuning section. 163 164config FEATURE_SH_EMBEDDED_SCRIPTS 165 bool "Embed scripts in the binary" 166 default y 167 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 168 help 169 Allow scripts to be compressed and embedded in the busybox 170 binary. The scripts should be placed in the 'embed' directory 171 at build time. Like applets, scripts can be run as 172 'busybox SCRIPT ...' or by linking their name to the binary. 173 174 This also allows applets to be implemented as scripts: place 175 the script in 'applets_sh' and a stub C file containing 176 configuration in the appropriate subsystem directory. 177 178endif # Options common to all shells 179 180endmenu 181