shell: make it possible to alias one of shells to "bash"

function                                             old     new   delta
packed_usage                                       27047   27054      +7
applet_names                                        2227    2232      +5
applet_main                                         1304    1308      +4
applet_nameofs                                       652     654      +2
applet_install_loc                                   163     164      +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/0 up/down: 19/0)               Total: 19 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2010-05-20 02:09:45 +02:00
parent 2e068e725c
commit 40477e2fdb
3 changed files with 38 additions and 11 deletions

View File

@ -79,6 +79,8 @@ IF_ARPING(APPLET(arping, _BB_DIR_USR_BIN, _BB_SUID_DROP))
IF_ASH(APPLET(ash, _BB_DIR_BIN, _BB_SUID_DROP)) IF_ASH(APPLET(ash, _BB_DIR_BIN, _BB_SUID_DROP))
IF_AWK(APPLET_NOEXEC(awk, awk, _BB_DIR_USR_BIN, _BB_SUID_DROP, awk)) IF_AWK(APPLET_NOEXEC(awk, awk, _BB_DIR_USR_BIN, _BB_SUID_DROP, awk))
IF_BASENAME(APPLET_NOFORK(basename, basename, _BB_DIR_USR_BIN, _BB_SUID_DROP, basename)) IF_BASENAME(APPLET_NOFORK(basename, basename, _BB_DIR_USR_BIN, _BB_SUID_DROP, basename))
IF_FEATURE_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, _BB_DIR_BIN, _BB_SUID_DROP, bash))
IF_FEATURE_BASH_IS_HUSH(APPLET_ODDNAME(bash, hush, _BB_DIR_BIN, _BB_SUID_DROP, bash))
IF_BBCONFIG(APPLET(bbconfig, _BB_DIR_BIN, _BB_SUID_DROP)) IF_BBCONFIG(APPLET(bbconfig, _BB_DIR_BIN, _BB_SUID_DROP))
//IF_BBSH(APPLET(bbsh, _BB_DIR_BIN, _BB_SUID_DROP)) //IF_BBSH(APPLET(bbsh, _BB_DIR_BIN, _BB_SUID_DROP))
IF_BEEP(APPLET(beep, _BB_DIR_USR_BIN, _BB_SUID_DROP)) IF_BEEP(APPLET(beep, _BB_DIR_USR_BIN, _BB_SUID_DROP))

View File

@ -123,6 +123,8 @@
#define lash_full_usage "" #define lash_full_usage ""
#define msh_trivial_usage NOUSAGE_STR #define msh_trivial_usage NOUSAGE_STR
#define msh_full_usage "" #define msh_full_usage ""
#define bash_trivial_usage NOUSAGE_STR
#define bash_full_usage ""
#define awk_trivial_usage \ #define awk_trivial_usage \
"[OPTIONS] [AWK_PROGRAM] [FILE]..." "[OPTIONS] [AWK_PROGRAM] [FILE]..."

View File

@ -6,11 +6,11 @@
menu "Shells" menu "Shells"
choice choice
prompt "Choose your default shell" prompt "Choose which shell is aliased to 'sh' name"
default FEATURE_SH_IS_NONE default FEATURE_SH_IS_NONE
help help
Choose a shell. The ash shell is the most bash compatible Choose which shell you want to be executed by 'sh' alias.
and full featured one. The ash shell is the most bash compatible and full featured one.
config FEATURE_SH_IS_ASH config FEATURE_SH_IS_ASH
select ASH select ASH
@ -21,19 +21,42 @@ config FEATURE_SH_IS_HUSH
select HUSH select HUSH
bool "hush" bool "hush"
####config FEATURE_SH_IS_LASH
#### select LASH
#### bool "lash"
####config FEATURE_SH_IS_MSH
#### select MSH
#### bool "msh"
config FEATURE_SH_IS_NONE config FEATURE_SH_IS_NONE
bool "none" bool "none"
endchoice endchoice
choice
prompt "Choose which shell is aliased to 'bash' name"
default FEATURE_BASH_IS_NONE
help
Choose which shell you want to be executed by 'bash' alias.
The ash shell is the most bash compatible and full featured one.
Note that selecting this option does not switch on any bash
compatibility code. It merely makes it possible to install
/bin/bash (sym)link and run scripts which start with
#!/bin/bash line.
Many systems use it in scripts which use bash-specific features,
even simple ones like $RANDOM. Without this option, busybox
can't be used for running them because it won't recongnize
"bash" as a supported applet name.
config FEATURE_BASH_IS_ASH
select ASH
bool "ash"
depends on !NOMMU
config FEATURE_BASH_IS_HUSH
select HUSH
bool "hush"
config FEATURE_BASH_IS_NONE
bool "none"
endchoice
config ASH config ASH
bool "ash" bool "ash"
default n default n