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 -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

