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