[PATCH] More ash test conditions.

walter harms WHarms at bfs.de
Wed Apr 9 16:00:52 UTC 2008



Mike Frysinger wrote:
> On Tuesday 08 April 2008, James Simmons wrote:
>>>> Index: shell/ash.c
>>>> ===================================================================
>>>> --- shell/ash.c	(revision 21673)
>>>> +++ shell/ash.c	(working copy)
>>>> @@ -12878,12 +12878,21 @@
>>>>
>>>>  /* longest must be first */
>>>>  static const char op_tokens[] ALIGN1 = {
>>>> +	'-','e','q',0, TOK_EQ,
>>>> +	'-','n','e',0, TOK_NE,
>>>> +	'-','l','t',0, TOK_LT,
>>>> +	'-','g','t',0, TOK_GT,
>>>> +	'-','g','e',0, TOK_GE,
>>>> +	'-','l','t',0, TOK_LT,
>>>> +	'-','l','e',0, TOK_LE,
>>>>  	'<','<','=',0, TOK_LSHIFT_ASSIGN,
>>>>  	'>','>','=',0, TOK_RSHIFT_ASSIGN,
>>>>  	'<','<',    0, TOK_LSHIFT,
>>>>  	'>','>',    0, TOK_RSHIFT,
>>>>  	'|','|',    0, TOK_OR,
>>>> +	'-','o',    0, TOK_OR,
>>>>  	'&','&',    0, TOK_AND,
>>>> +	'-','a',    0, TOK_AND,
>>>>  	'!','=',    0, TOK_NE,
>>>>  	'<','=',    0, TOK_LE,
>>>>  	'>','=',    0, TOK_GE,
>>> Can you give examples of changed behavior?
>> Actually testing the patch now something changed from busybox 1.6.1. It no
>> longer works. The problem was this. Now I don't know if this is a bashism?
>>
>> #!/bin/sh
>>
>> len=10
>> i=0
>>
>> while [[ $((++i)) -lt len ]]; do
>>         echo "i = $i"
>> done
> 
> the [[...]] is a bashism.  in this case you can just change it to [...].  in 
> this particular case, [...] will behave exactly the same as bash's [[...]].  
> the ++ operator is optional POSIX extension.
> -mike
> 

[[ is actualy ksh and called 'extened test facility'.
"[[ differs from the regular test and [ command in that word expansion and pattern expansion are not done."
So [[ != [ and iff we have [[ we should keep it.


just my 2 cents,
 wh



More information about the busybox mailing list