[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] - otra de bash - <in>



El Tue, 16 Nov 2010 13:15:59 +0100, Javier Barroso escribió:

> On Tue, Nov 16, 2010 at 1:11 PM, Camaleón wrote:
>> #!/bin/sh
>>
>> X="a1 a2 a3"
>>
>> read A
>>
>> if [[ "$X" =~ $A ]]; then
>>        echo $A esta en $X
>> else
>>        echo $A No esta en $X
>> fi

> Hay que tener cuidado con este tipo de expresiones, ya que pueden dar
> falsos positivos
> 
> X="a1no a2 a3"
> 
> read A:
> Respuesta: a1
> 
> $X =~ $A ==> OK

¡¡Grrr!! Cierto :-)

Según el manual¹, el segundo operador se convierte en una expresión 
regular extendida así que debería permitir los mismos filtros para 
delimitar la palabra exacta, p. ej.:


#!/bin/sh

X="a1no a2 a3"

read A

if [[ $X =~ "^$A"|"$A "|" $A" ]]; then
        echo $A esta en $X
else
        echo $A No esta en $X
fi



¹http://www.gnu.org/software/bash/manual/html_node/Conditional-Constructs.html

Saludos,

-- 
Camaleón


Reply to: