[CentOS-es] Error en `expr index @cadena1 @cadena@`

Eduardo Grosclaude eduardo.grosclaude en gmail.com
Mie Sep 23 21:20:03 UTC 2009


2009/9/23 Abelardo Ramírez Ferrer <abelardo en platino.co.cu>

> Hola colegas
>
> Estoy enredado con un error con el uso de `expr index ...`. El ejemplo
> con el que estoy probando y que les pongo al final es simple pero tiene
> que ver con algo parecido al tema pasado "Timer para control sesionES"
>
> El problema es que que si en la cadena $micadena al valor le añado
> espacios entre palabras me tira el error "expr: error de sintaxis", si
> se los quito en $miotracadena todo trabaja bien. Es decir en los echos
> 1, 3 y 5 me da error; en los echos 2,4 y 6 no.
>
>
> Gracias
>
>
>
> #!/bin/bash
> #
> clear
> micadena="Pepe y Juan"
> miotracadena="PepeyJuan"
> cadenaabuscar="Juan"
> #echo 1
> echo "Posicion con espacios " `expr index $micadena $cadenaabuscar`
> #echo 2
> echo "Posicion sin espacios " `expr index $miotracadena $cadenaabuscar`
> #echo 3
> echo "La primeras tres letras con espacios " `expr substr $micadena 1 3`
> #echo 4
> echo "La primeras tres letras sin espacios " `expr substr $miotracadena
> 1 3`
> #echo 5
> echo "Largo de micadena con espacios" `expr length $micadena`
> #echo 6
> echo "Largo de micadena sin espacios" `expr length $miotracadena`
>
>
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á.

-- 
Eduardo Grosclaude
Universidad Nacional del Comahue
Neuquen, Argentina
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.centos.org/pipermail/centos-es/attachments/20090923/e98baf04/attachment.html 


Más información sobre la lista de distribución CentOS-es