On 5/9/13 3:22 PM, "Dash Four" <[email protected]> wrote:

>
>
>Tom Eastep wrote:
>> On 5/8/13 5:33 PM, "Dash Four" <[email protected]> wrote:
>>   
>>> Tom Eastep wrote:
>>>     
>>>> On 5/7/13 4:30 PM, "Dash Four" <[email protected]> wrote:
>>>>       
>>>>> Tom Eastep wrote:
>>>>>         
>>>>>> Patch attached.
>>>>> Applied and tested with changes (see patch attached),
>>>>>         
>>>> You are aware that '==' is only supported by bash and that much of the
>>>> world outside of Redhat doesn't use bash as /bin/sh? I'm guessing not.
>>>>       
>>> I am guessing you haven't got a clue, have you?
>>>     
>>
>> I have the following clue:
>>
>> root@gateway:~# /bin/sh
>> # [ a == a ] && echo Yes
>> [: 1: a: unexpected operator
>> # exit
>>
>> root@gateway:~# [ a == a ] && echo Yes
>> Yes
>> root@gateway:~#
>>
>>
>> On this system (Debian), /bin/sh is the Dash shell.
>>
>> So '==' doesn't appear in any of my shell code that is destined to run
>>on
>> all distributions.
>>   
>Have a very good read at your own post from yesterday (if you can, that
>is). Please pay particular attention to the "'==' is only supported by
>bash" bit. Now, my turn to show off:
>
>~# /system/xbin/ash
>/opt # ash --help
>BusyBox v1.19.3-cm7 bionic (2011-11-14 16:52 +0100) multi-call binary.
>
>Usage: ash [-/+OPTIONS] [-/+o OPT]... [-c 'SCRIPT' [ARG0 [ARGS]] / FILE
>[ARGS]]
>
>Unix shell interpreter
>
>/opt # [ 0 == 1 ] || echo Yes
>Yes
>/opt #
>
>That was BusyBox using ash. As you may or may not be aware, BusyBox is
>widely used in routers/embedded or resource-constrained devices and has
>nothing whatsoever to do with Redhat and 'ash' ain't exactly 'bash'.
>
>Then, there is the korn shell (ksh) and derivatives (zsh etc) - even
>though I can't demonstrate the above example (I use ksh on a few of my
>embedded devices where there is no terminal - tty - capabilities
>present), I can enclose the relevant parts from the ksh man page for
>your benefit:
>
>string == pattern
>  True, if string matches pattern. Any part of pattern can be quoted to
>cause it to be matched as a string. With a successful match to a
>pattern, the .sh.match array variable will contain the match and
>sub-pattern matches.
>
>Next in line is the c shell (csh) and his big brother tcsh (which is
>what I used before bash) - again, extracted from the man page for your
>own benefit:
>
>Logical, arithmetical and comparison operators :- These operators are
>similar to those of C and have the same precedence. They include  || &&
>| ^ & == != =~ !~ <= >=  < > << >> + - * / % ! ~ ( )
>
>Would you like me to go on? Thought not! As I already put it to you
>yesterday - you are a bit clueless, aren't you.

My point is simply that there is a major distribution where /bin/sh
doesn't support '=='. Knowing that, I admit that I didn't waste my time
testing all of the other shells in the universe.

Shorewall has always used, and will continue to use, only the set of
constructs supported by all of the default shells on systems where it
commonly runs. Dash doesn't support '==' and /bin/sh is dash on current
Debian releases.

End of discussion.

-Tom
You do not need a parachute to skydive. You only need a parachute to
skydive twice.





------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
_______________________________________________
Shorewall-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/shorewall-devel

Reply via email to