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