Contents of /tags/mkinitrd-6_1_7/busybox/shell/Config.in
Parent Directory | Revision Log
Revision 909 -
(show annotations)
(download)
Fri Oct 16 13:40:14 2009 UTC (14 years, 11 months ago) by niro
File size: 9861 byte(s)
Fri Oct 16 13:40:14 2009 UTC (14 years, 11 months ago) by niro
File size: 9861 byte(s)
tagged 'mkinitrd-6_1_7'
1 | # |
2 | # For a description of the syntax of this configuration file, |
3 | # see scripts/kbuild/config-language.txt. |
4 | # |
5 | |
6 | menu "Shells" |
7 | |
8 | choice |
9 | prompt "Choose your default shell" |
10 | default FEATURE_SH_IS_NONE |
11 | help |
12 | Choose a shell. The ash shell is the most bash compatible |
13 | and full featured one. |
14 | |
15 | config FEATURE_SH_IS_ASH |
16 | select ASH |
17 | bool "ash" |
18 | |
19 | config FEATURE_SH_IS_HUSH |
20 | select HUSH |
21 | bool "hush" |
22 | |
23 | ####config FEATURE_SH_IS_LASH |
24 | #### select LASH |
25 | #### bool "lash" |
26 | |
27 | config FEATURE_SH_IS_MSH |
28 | select MSH |
29 | bool "msh" |
30 | |
31 | config FEATURE_SH_IS_NONE |
32 | bool "none" |
33 | |
34 | endchoice |
35 | |
36 | config ASH |
37 | bool "ash" |
38 | default n |
39 | help |
40 | Tha 'ash' shell adds about 60k in the default configuration and is |
41 | the most complete and most pedantically correct shell included with |
42 | busybox. This shell is actually a derivative of the Debian 'dash' |
43 | shell (by Herbert Xu), which was created by porting the 'ash' shell |
44 | (written by Kenneth Almquist) from NetBSD. |
45 | |
46 | comment "Ash Shell Options" |
47 | depends on ASH |
48 | |
49 | config ASH_BASH_COMPAT |
50 | bool "bash-compatible extensions" |
51 | default y |
52 | depends on ASH |
53 | help |
54 | Enable bash-compatible extensions. |
55 | |
56 | config ASH_JOB_CONTROL |
57 | bool "Job control" |
58 | default y |
59 | depends on ASH |
60 | help |
61 | Enable job control in the ash shell. |
62 | |
63 | config ASH_READ_NCHARS |
64 | bool "'read -n N' and 'read -s' support" |
65 | default n |
66 | depends on ASH |
67 | help |
68 | 'read -n N' will return a value after N characters have been read. |
69 | 'read -s' will read without echoing the user's input. |
70 | |
71 | config ASH_READ_TIMEOUT |
72 | bool "'read -t S' support" |
73 | default n |
74 | depends on ASH |
75 | help |
76 | 'read -t S' will return a value after S seconds have passed. |
77 | This implementation will allow fractional seconds, expressed |
78 | as a decimal fraction, e.g. 'read -t 2.5 foo'. |
79 | |
80 | config ASH_ALIAS |
81 | bool "alias support" |
82 | default y |
83 | depends on ASH |
84 | help |
85 | Enable alias support in the ash shell. |
86 | |
87 | config ASH_MATH_SUPPORT |
88 | bool "Posix math support" |
89 | default y |
90 | depends on ASH |
91 | help |
92 | Enable math support in the ash shell. |
93 | |
94 | config ASH_MATH_SUPPORT_64 |
95 | bool "Extend Posix math support to 64 bit" |
96 | default n |
97 | depends on ASH_MATH_SUPPORT |
98 | help |
99 | Enable 64-bit math support in the ash shell. This will make |
100 | the shell slightly larger, but will allow computation with very |
101 | large numbers. |
102 | |
103 | config ASH_GETOPTS |
104 | bool "Builtin getopt to parse positional parameters" |
105 | default n |
106 | depends on ASH |
107 | help |
108 | Enable getopts builtin in the ash shell. |
109 | |
110 | config ASH_BUILTIN_ECHO |
111 | bool "Builtin version of 'echo'" |
112 | default y |
113 | depends on ASH |
114 | help |
115 | Enable support for echo, builtin to ash. |
116 | |
117 | config ASH_BUILTIN_PRINTF |
118 | bool "Builtin version of 'printf'" |
119 | default y |
120 | depends on ASH |
121 | help |
122 | Enable support for printf, builtin to ash. |
123 | |
124 | config ASH_BUILTIN_TEST |
125 | bool "Builtin version of 'test'" |
126 | default y |
127 | depends on ASH |
128 | help |
129 | Enable support for test, builtin to ash. |
130 | |
131 | config ASH_CMDCMD |
132 | bool "'command' command to override shell builtins" |
133 | default n |
134 | depends on ASH |
135 | help |
136 | Enable support for the ash 'command' builtin, which allows |
137 | you to run the specified command with the specified arguments, |
138 | even when there is an ash builtin command with the same name. |
139 | |
140 | config ASH_MAIL |
141 | bool "Check for new mail on interactive shells" |
142 | default y |
143 | depends on ASH |
144 | help |
145 | Enable "check for new mail" in the ash shell. |
146 | |
147 | config ASH_OPTIMIZE_FOR_SIZE |
148 | bool "Optimize for size instead of speed" |
149 | default y |
150 | depends on ASH |
151 | help |
152 | Compile ash for reduced size at the price of speed. |
153 | |
154 | config ASH_RANDOM_SUPPORT |
155 | bool "Pseudorandom generator and variable $RANDOM" |
156 | default n |
157 | depends on ASH |
158 | help |
159 | Enable pseudorandom generator and dynamic variable "$RANDOM". |
160 | Each read of "$RANDOM" will generate a new pseudorandom value. |
161 | You can reset the generator by using a specified start value. |
162 | After "unset RANDOM" then generator will switch off and this |
163 | variable will no longer have special treatment. |
164 | |
165 | config ASH_EXPAND_PRMT |
166 | bool "Expand prompt string" |
167 | default n |
168 | depends on ASH |
169 | help |
170 | "PS#" may be contain volatile content, such as backquote commands. |
171 | This option recreates the prompt string from the environment |
172 | variable each time it is displayed. |
173 | |
174 | config HUSH |
175 | bool "hush" |
176 | default n |
177 | help |
178 | hush is a very small shell (just 18k) and it has fairly complete |
179 | Bourne shell grammar. It even handles all the normal flow control |
180 | options such as if/then/elif/else/fi, for/in/do/done, while loops, |
181 | case/esac. |
182 | |
183 | It uses only vfork, so it can be used on uClinux systems. |
184 | |
185 | It does not handle select, functions, here documents ( << |
186 | word ), arithmetic expansion, aliases, brace expansion, tilde |
187 | expansion, &> and >& redirection of stdout+stderr, etc. |
188 | |
189 | config HUSH_HELP |
190 | bool "help builtin" |
191 | default n |
192 | depends on HUSH |
193 | help |
194 | Enable help builtin in hush. Code size + ~1 kbyte. |
195 | |
196 | config HUSH_INTERACTIVE |
197 | bool "Interactive mode" |
198 | default y |
199 | depends on HUSH |
200 | help |
201 | Enable interactive mode (prompt and command editing). |
202 | Without this, hush simply reads and executes commands |
203 | from stdin just like a shell script from the file. |
204 | No prompt, no PS1/PS2 magic shell variables. |
205 | |
206 | config HUSH_JOB |
207 | bool "Job control" |
208 | default n |
209 | depends on HUSH_INTERACTIVE |
210 | help |
211 | Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current |
212 | command (not entire shell), fg/bg builtins work. Without this option, |
213 | "cmd &" still works by simply spawning a process and immediately |
214 | prompting for next command (or executing next command in a script), |
215 | but no separate process group is formed. |
216 | |
217 | config HUSH_TICK |
218 | bool "Process substitution" |
219 | default n |
220 | depends on HUSH |
221 | help |
222 | Enable process substitution `command` and $(command) in hush. |
223 | |
224 | config HUSH_IF |
225 | bool "Support if/then/elif/else/fi" |
226 | default n |
227 | depends on HUSH |
228 | help |
229 | Enable if/then/elif/else/fi in hush. |
230 | |
231 | config HUSH_LOOPS |
232 | bool "Support for, while and until loops" |
233 | default n |
234 | depends on HUSH |
235 | help |
236 | Enable for, while and until loops in hush. |
237 | As of 2008-07, break and continue statements are not supported. |
238 | |
239 | config HUSH_CASE |
240 | bool "Support case ... esac statement" |
241 | default n |
242 | depends on HUSH |
243 | help |
244 | Enable case ... esac statement in hush. +400 bytes. |
245 | |
246 | config LASH |
247 | bool "lash" |
248 | default n |
249 | select HUSH |
250 | help |
251 | lash is deprecated and will be removed, please migrate to hush. |
252 | |
253 | config MSH |
254 | bool "msh" |
255 | default n |
256 | help |
257 | The minix shell (adds just 30k) is quite complete and handles things |
258 | like for/do/done, case/esac and all the things you expect a Bourne |
259 | shell to do. It is not always pedantically correct about Bourne |
260 | shell grammar (try running the shell testscript "tests/sh.testcases" |
261 | on it and compare vs bash) but for most things it works quite well. |
262 | It uses only vfork, so it can be used on uClinux systems. |
263 | |
264 | comment "Bourne Shell Options" |
265 | depends on MSH || LASH || HUSH || ASH |
266 | |
267 | config FEATURE_SH_EXTRA_QUIET |
268 | bool "Hide message on interactive shell startup" |
269 | default n |
270 | depends on MSH || LASH || HUSH || ASH |
271 | help |
272 | Remove the busybox introduction when starting a shell. |
273 | |
274 | config FEATURE_SH_STANDALONE |
275 | bool "Standalone shell" |
276 | default n |
277 | depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS |
278 | help |
279 | This option causes busybox shells to use busybox applets |
280 | in preference to executables in the PATH whenever possible. For |
281 | example, entering the command 'ifconfig' into the shell would cause |
282 | busybox to use the ifconfig busybox applet. Specifying the fully |
283 | qualified executable name, such as '/sbin/ifconfig' will still |
284 | execute the /sbin/ifconfig executable on the filesystem. This option |
285 | is generally used when creating a statically linked version of busybox |
286 | for use as a rescue shell, in the event that you screw up your system. |
287 | |
288 | This is implemented by re-execing /proc/self/exe (typically) |
289 | with right parameters. Some selected applets ("NOFORK" applets) |
290 | can even be executed without creating new process. |
291 | Instead, busybox will call <applet>_main() internally. |
292 | |
293 | However, this causes problems in chroot jails without mounted /proc |
294 | and with ps/top (command name can be shown as 'exe' for applets |
295 | started this way). |
296 | # untrue? |
297 | # Note that this will *also* cause applets to take precedence |
298 | # over shell builtins of the same name. So turning this on will |
299 | # eliminate any performance gained by turning on the builtin "echo" |
300 | # and "test" commands in ash. |
301 | # untrue? |
302 | # Note that when using this option, the shell will attempt to directly |
303 | # run '/bin/busybox'. If you do not have the busybox binary sitting in |
304 | # that exact location with that exact name, this option will not work at |
305 | # all. |
306 | |
307 | config FEATURE_SH_NOFORK |
308 | bool "Run 'nofork' applets directly" |
309 | default n |
310 | depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS |
311 | help |
312 | This option causes busybox shells [currently only ash] |
313 | to not execute typical fork/exec/wait sequence, but call <applet>_main |
314 | directly, if possible. (Sometimes it is not possible: for example, |
315 | this is not possible in pipes). |
316 | |
317 | This will be done only for some applets (those which are marked |
318 | NOFORK in include/applets.h). |
319 | |
320 | This may significantly speed up some shell scripts. |
321 | |
322 | This feature is relatively new. Use with care. |
323 | |
324 | config CTTYHACK |
325 | bool "cttyhack" |
326 | default n |
327 | help |
328 | One common problem reported on the mailing list is "can't access tty; |
329 | job control turned off" error message which typically appears when |
330 | one tries to use shell with stdin/stdout opened to /dev/console. |
331 | This device is special - it cannot be a controlling tty. |
332 | |
333 | Proper solution is to use correct device instead of /dev/console. |
334 | |
335 | cttyhack provides "quick and dirty" solution to this problem. |
336 | It analyzes stdin with various ioctls, trying to determine whether |
337 | it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line). |
338 | If it detects one, it closes stdin/out/err and reopens that device. |
339 | Then it executes given program. Usage example for /etc/inittab |
340 | (for busybox init): |
341 | |
342 | ::respawn:/bin/cttyhack /bin/sh |
343 | |
344 | endmenu |