shell: add comments about [[, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
4709df0f15
commit
3632cb15f1
@ -313,6 +313,9 @@ static const struct operator_t ops_table[] = {
|
||||
{ /* "-L" */ FILSYM , UNOP },
|
||||
{ /* "-S" */ FILSOCK , UNOP },
|
||||
{ /* "=" */ STREQ , BINOP },
|
||||
/* "==" is bashism, http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
|
||||
* lists only "=" as comparison operator.
|
||||
*/
|
||||
{ /* "==" */ STREQ , BINOP },
|
||||
{ /* "!=" */ STRNE , BINOP },
|
||||
{ /* "<" */ STRLT , BINOP },
|
||||
@ -357,6 +360,7 @@ static const char ops_texts[] ALIGN1 =
|
||||
"-L" "\0"
|
||||
"-S" "\0"
|
||||
"=" "\0"
|
||||
/* "==" is bashism */
|
||||
"==" "\0"
|
||||
"!=" "\0"
|
||||
"<" "\0"
|
||||
|
15
shell/ash.c
15
shell/ash.c
@ -197,7 +197,20 @@
|
||||
#define IF_BASH_PATTERN_SUBST IF_ASH_BASH_COMPAT
|
||||
#define BASH_SUBSTR ENABLE_ASH_BASH_COMPAT
|
||||
#define IF_BASH_SUBSTR IF_ASH_BASH_COMPAT
|
||||
/* [[ EXPR ]] */
|
||||
/* BASH_TEST2: [[ EXPR ]]
|
||||
* Status of [[ support:
|
||||
* We replace && and || with -a and -o
|
||||
* TODO:
|
||||
* singleword+noglob expansion:
|
||||
* v='a b'; [[ $v = 'a b' ]]; echo 0:$?
|
||||
* [[ /bin/* ]]; echo 0:$?
|
||||
* -a/-o are not AND/OR ops! (they are just strings)
|
||||
* quoting needs to be considered (-f is an operator, "-f" and ""-f are not; etc)
|
||||
* = is glob match operator, not equality operator: STR = GLOB
|
||||
* (in GLOB, quoting is significant on char-by-char basis: a*cd"*")
|
||||
* == same as =
|
||||
* add =~ regex match operator: STR =~ REGEX
|
||||
*/
|
||||
#define BASH_TEST2 (ENABLE_ASH_BASH_COMPAT * ENABLE_ASH_TEST)
|
||||
#define BASH_SOURCE ENABLE_ASH_BASH_COMPAT
|
||||
#define BASH_PIPEFAIL ENABLE_ASH_BASH_COMPAT
|
||||
|
12
shell/hush.c
12
shell/hush.c
@ -79,6 +79,18 @@
|
||||
* Some builtins mandated by standards:
|
||||
* newgrp [GRP]: not a builtin in bash but a suid binary
|
||||
* which spawns a new shell with new group ID
|
||||
*
|
||||
* Status of [[ support:
|
||||
* [[ args ]] are CMD_SINGLEWORD_NOGLOB:
|
||||
* v='a b'; [[ $v = 'a b' ]]; echo 0:$?
|
||||
* [[ /bin/* ]]; echo 0:$?
|
||||
* TODO:
|
||||
* &&/|| are AND/OR ops, -a/-o are not
|
||||
* quoting needs to be considered (-f is an operator, "-f" and ""-f are not; etc)
|
||||
* = is glob match operator, not equality operator: STR = GLOB
|
||||
* (in GLOB, quoting is significant on char-by-char basis: a*cd"*")
|
||||
* == same as =
|
||||
* add =~ regex match operator: STR =~ REGEX
|
||||
*/
|
||||
//config:config HUSH
|
||||
//config: bool "hush (64 kb)"
|
||||
|
Loading…
x
Reference in New Issue
Block a user