[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