On Fri, Nov 4, 2011 at 4:31 AM, Graham North <gra...@turbo-electric.com> wrote: > Hi, > > There seems to be a bug in bash regex. > > It doesn't recognise the line start caret: > > --Commands: > ONE="/fred" > TWO="fred/" > REGEX='^/' > echo "$ONE $TWO $REGEX" > [[ "$ONE" =~ "$REGEX" ]] && echo yes || echo no > [[ "$TWO" =~ "$REGEX" ]] && echo yes || echo no > > > --Result: > /fred fred/ ^/ > no > no > > Not sure how to proceed. > > Thanks > > Graham (0779 321 1967) > > > >
The regex must not be quoted. [[ $one =~ $regex ]]. Also, as an aside, don't use all-caps variable names. Those should only be used for environment and internal shell variables (as in internal to bash).