<br><br><div class="gmail_quote">2009/9/23 Abelardo Ramírez Ferrer <span dir="ltr"><<a href="mailto:abelardo@platino.co.cu">abelardo@platino.co.cu</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hola colegas<br>
<br>
Estoy enredado con un error con el uso de `expr index ...`. El ejemplo<br>
con el que estoy probando y que les pongo al final es simple pero tiene<br>
que ver con algo parecido al tema pasado "Timer para control sesionES"<br>
<br>
El problema es que que si en la cadena $micadena al valor le añado<br>
espacios entre palabras me tira el error "expr: error de sintaxis", si<br>
se los quito en $miotracadena todo trabaja bien. Es decir en los echos<br>
1, 3 y 5 me da error; en los echos 2,4 y 6 no.<br>
<br>
<br>
Gracias<br>
<br>
<br>
<br>
#!/bin/bash<br>
#<br>
clear<br>
micadena="Pepe y Juan"<br>
miotracadena="PepeyJuan"<br>
cadenaabuscar="Juan"<br>
#echo 1<br>
echo "Posicion con espacios " `expr index $micadena $cadenaabuscar`<br>
#echo 2<br>
echo "Posicion sin espacios " `expr index $miotracadena $cadenaabuscar`<br>
#echo 3<br>
echo "La primeras tres letras con espacios " `expr substr $micadena 1 3`<br>
#echo 4<br>
echo "La primeras tres letras sin espacios " `expr substr $miotracadena<br>
1 3`<br>
#echo 5<br>
echo "Largo de micadena con espacios" `expr length $micadena`<br>
#echo 6<br>
echo "Largo de micadena sin espacios" `expr length $miotracadena`<br>
<br></blockquote></div><br>El script almacena las cadenas completas gracias a las comillas, pero cuando esas cadenas las reciben las expresiones, esas comillas ya no están. Eso hace que aparezcan en la expresión más argumentos que los necesarios para index, substr y length. Si pones en cambio `expr index "$micadena" "$cadenaabuscar"` todo se arreglará.<br>
<br>-- <br>Eduardo Grosclaude<br>Universidad Nacional del Comahue<br>Neuquen, Argentina<br>