Use the new 'select' option to make the shell config
much less evil and far more obvious. -Erik
This commit is contained in:
parent
c601ff149a
commit
b287e2e27a
@ -13,15 +13,19 @@ choice
|
||||
and full featured.
|
||||
|
||||
config CONFIG_FEATURE_SH_IS_ASH
|
||||
select CONFIG_ASH
|
||||
bool "ash"
|
||||
|
||||
config CONFIG_FEATURE_SH_IS_HUSH
|
||||
select CONFIG_HUSH
|
||||
bool "hush"
|
||||
|
||||
config CONFIG_FEATURE_SH_IS_LASH
|
||||
select CONFIG_LASH
|
||||
bool "lash"
|
||||
|
||||
config CONFIG_FEATURE_SH_IS_MSH
|
||||
select CONFIG_MSH
|
||||
bool "msh"
|
||||
|
||||
config CONFIG_FEATURE_SH_IS_NONE
|
||||
@ -29,20 +33,15 @@ config CONFIG_FEATURE_SH_IS_NONE
|
||||
|
||||
endchoice
|
||||
|
||||
if CONFIG_FEATURE_SH_IS_ASH
|
||||
config CONFIG_ASH
|
||||
default y
|
||||
|
||||
comment "ash (forced enabled as default shell)"
|
||||
endif
|
||||
|
||||
if !CONFIG_FEATURE_SH_IS_ASH
|
||||
config CONFIG_ASH
|
||||
bool "ash"
|
||||
default y
|
||||
help
|
||||
Make sh a link to ash.
|
||||
endif
|
||||
Tha 'ash' shell adds about 60k in the default configuration and is
|
||||
the most complete and most pedantically correct shell included with
|
||||
busybox. This shell is actually a derivitive the Debian 'dash' shell
|
||||
(by Herbert Xu), which was created by porting the 'ash' shell
|
||||
(written by Kenneth Almquist) from NetBSD.
|
||||
|
||||
comment "Ash Shell Options"
|
||||
depends on CONFIG_ASH
|
||||
@ -98,51 +97,41 @@ config CONFIG_ASH_OPTIMIZE_FOR_SIZE
|
||||
help
|
||||
Compile ash for reduced size at price of speed.
|
||||
|
||||
if CONFIG_FEATURE_SH_IS_HUSH
|
||||
config CONFIG_HUSH
|
||||
default y
|
||||
|
||||
comment "hush (forced enabled as default shell)"
|
||||
endif
|
||||
|
||||
if !CONFIG_FEATURE_SH_IS_HUSH
|
||||
config CONFIG_HUSH
|
||||
bool "hush"
|
||||
default n
|
||||
help
|
||||
Make sh a link to hush.
|
||||
endif
|
||||
hush is very small shell (just 18k) and it has fairly complete Bourne
|
||||
shell grammer. It even handles all the normal flow control options
|
||||
such as if/then/elif/else/fi, for/in/do/done, while loops, etc.
|
||||
|
||||
if CONFIG_FEATURE_SH_IS_LASH
|
||||
config CONFIG_LASH
|
||||
default y
|
||||
It does not handle case/esac, select, function, here documents ( <<
|
||||
word ), arithmetic expansion, aliases, brace expansion, tilde
|
||||
expansion, &> and >& redirection of stdout+stderr, etc.
|
||||
|
||||
comment "lash (forced enabled as default shell)"
|
||||
endif
|
||||
|
||||
if !CONFIG_FEATURE_SH_IS_LASH
|
||||
config CONFIG_LASH
|
||||
bool "lash"
|
||||
default n
|
||||
help
|
||||
Make sh a link to lash.
|
||||
endif
|
||||
lash is the very smallest shell (adds just 10k) and it is quite
|
||||
usable as a command prompt, but it is not suitable for any but the
|
||||
most trivial scripting (such as an initrd that calls insmod a few
|
||||
times) since it does not understand any Bourne shell grammer. It
|
||||
does handle pipes, redirects, and job control though. Adding in
|
||||
command editing makes it a very nice lightweight command prompt.
|
||||
|
||||
if CONFIG_FEATURE_SH_IS_MSH
|
||||
config CONFIG_MSH
|
||||
default y
|
||||
|
||||
comment "msh (forced enabled as default shell)"
|
||||
endif
|
||||
|
||||
if !CONFIG_FEATURE_SH_IS_MSH
|
||||
config CONFIG_MSH
|
||||
bool "msh"
|
||||
default n
|
||||
help
|
||||
Make sh a link to msh.
|
||||
endif
|
||||
|
||||
The minix shell (adds just 30k) is quite complete and handles things
|
||||
like for/do/done, case/esac and all the things you expect a Bourne
|
||||
shell to do. It is not always pedantically correct about Bourne
|
||||
shell grammer (try running the shell testscript "tests/sh.testcases"
|
||||
on it and compare vs bash) but for most things it works quite well.
|
||||
It also uses only vfork, so it can be used on uClinux systems.
|
||||
|
||||
comment "Bourne Shell Options"
|
||||
depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
|
||||
|
Loading…
Reference in New Issue
Block a user