<br><br><div class="gmail_quote">2009/9/23 Abelardo Ramírez Ferrer <span dir="ltr">&lt;<a href="mailto:abelardo@platino.co.cu">abelardo@platino.co.cu</a>&gt;</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 &quot;Timer para control sesionES&quot;<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 &quot;expr: error de sintaxis&quot;, 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=&quot;Pepe y Juan&quot;<br>
miotracadena=&quot;PepeyJuan&quot;<br>
cadenaabuscar=&quot;Juan&quot;<br>
#echo 1<br>
echo &quot;Posicion con espacios &quot; `expr index $micadena $cadenaabuscar`<br>
#echo 2<br>
echo &quot;Posicion sin espacios &quot; `expr index $miotracadena $cadenaabuscar`<br>
#echo 3<br>
echo &quot;La primeras tres letras con espacios &quot; `expr substr $micadena 1 3`<br>
#echo 4<br>
echo &quot;La primeras tres letras sin espacios &quot; `expr substr $miotracadena<br>
1 3`<br>
#echo 5<br>
echo &quot;Largo de micadena con espacios&quot; `expr length $micadena`<br>
#echo 6<br>
echo &quot;Largo de micadena sin espacios&quot; `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 &quot;$micadena&quot; &quot;$cadenaabuscar&quot;` todo se arreglará.<br>
<br>-- <br>Eduardo Grosclaude<br>Universidad Nacional del Comahue<br>Neuquen, Argentina<br>