Re: [OT] - otra de bash - <in>
On Tue, Nov 16, 2010 at 12:41:50PM +0100, mariodebian wrote:
> El mar, 16-11-2010 a las 12:37 +0100, Mariano Cediel escribió:
> > #!/bin/sh
> >
> > X="a1 a2 a3"
> >
> > read A
> > if [ $A in $X ]; then
> > echo $A esta en $X
> > else
> > echo $A No esta en $X
> > fi
> >
> > lo que no funciona, es lo del [ $A in $X ] como ya sabreis.
> > Alguna forma elegante de solucionarlo que NO sea recorriendo el $X
> > componente a componente ¿?
>
>
> if echo "$X" | grep -q " $A "; then
> echo "$A esta en $X"
> fi
Fallaría en el primero y en el último que no tienen espacio en blanco en un
lado.
Puedes probar con
if echo "$X" | tr -s ' ' '\n' | grep -q "^$A$"; then
echo "$A esta en $X"
fi
Seguramente hay una forma más elegante, preferiblemente portable.
--
Agustin
Reply to: