Hola a todos, tengo este trozo de condigo el cual me cuenta la longiud de una cadena y la recorro para poder comparar cada caracter y poder saber cuantos asteriscos tiene la cadena introducida por parametro.
Este es el codigo:
Código:
case $1 in
-name)
#busco un nombre completo y no acepto expresiones regulares
longitudC=${#2} #almaceno longitud de la cadena
caracter="*"
i=0
numAst=0
echo $caracter
echo $longitudC
for i in {0..$longitudC} #recorro la cadena
do
echo $i
if [ $i==$caracter ] #si contenido
then
echo "he entrado" $i "veces"
let numAst=numAst+1 #sumo numero asteriscos
fi
done
echo $numAst
;;
esac
Y este es el resultado de su ejecucion:
User-Capixi:~$ ./prueba.sh -name Docu**me*
Baixades buscar02.sh buscarFind.sh Desktop Documents Downloads hola.sh Imatges Música prueba.sh UserFiles Vídeos
9
{0..9}
he entrado {0..9} veces
1
Como veis el caso es que no me compara nada porque me sustituye el * por el listado de el directorio actual.
Como puedo hacer para escapar el asterisco?
Estoy comparando las cadenas de manera correcta?