has probado con ${variable} ?
- Blackhold
http://marsupi.org
~> conquerint l'aire, alliberant les ones.
~> un procés en background també consumeix recursos
2011/8/15 <[email protected]>:
> Hola, peña!
>
> Es un tema muy recurrente, pero por más vueltas que le doy no acabo de
> encontrar la solución. Tampoco en internet encontré el mismo tipo de caso
> que pretendo resolver.
>
> En un script creo una variable que contiene una orden entre cuyos parámetros
> se encuentran nombres de archivo. Luego pretendo ejecutar la orden invocando
> a la variable. El problema está cuando los nombres de archivo contienen
> espacios.
>
> Aquí van un ejemplo algo "estilizado" para que resulte más claro...
>
> $ ARCHIVO="archivo con espacios"
> $ echo $ARCHIVO
> archivo con espacios
> $ CMD="cat $ARCHIVO"
> $ echo $CMD
> cat archivo con espacios
>
> Ya se intuye que esto fallará...
>
> $ $CMD
> cat: archivo: No existe el fichero o el directorio
> cat: con: No existe el fichero o el directorio
> cat: espacios: No existe el fichero o el directorio
>
>
> ¿Y si lo intento con comillas?
>
> $ CMD="cat \"$ARCHIVO\""
> $ echo $CMD
> cat "archivo con espacios"
> $ $CMD
> cat: "archivo: No existe el fichero o el directorio
> cat: con: No existe el fichero o el directorio
> cat: espacios": No existe el fichero o el directorio
>
>
> Ha fallado, aunque curiosamente sí que funciona desde el prompt
> $ cat "archivo con espacios"
> este es el contenido del archivo "archivo con espacios"
>
>
> Probando a 'escapar' el espacio
>
> $ CMD="cat $(echo ${ARCHIVO// /\\ })"
> $ echo $CMD
> cat archivo\ con\ espacios
> $ $CMD
> cat: archivo\: No existe el fichero o el directorio
> cat: con\: No existe el fichero o el directorio
> cat: espacios: No existe el fichero o el directorio
>
>
> Este último también funciona directamente desde el indicador del sistema...
>
> $ cat archivo\ con\ espacio
> este es el contenido del archivo "archivo con espacios"
>
>
>
>
> ¿quizás cambiando el IFS? (no creo, pues sí que necesita procesar la
> separación entre la orden y el argumento)
>
> $ IFS=":"
> $ $CMD
> cat archivo\ con\ espacios: orden no encontrada
>
> Y hasta aquí he llegado. Creo que me resultará más fácil renombrar los
> archivos eliminando los espacios, pero me gustaría encontrar una solución
> más elegante. ¿Alguna sugerencia?
>
> Muchas gracias.
>
>
> --
> Ismael Fanlo
>
>
>
> --
> _______________________________________________
> Comandob mailing list
> [email protected]
> http://lists.badopi.org/mailman/listinfo/comandob
--
_______________________________________________
Comandob mailing list
[email protected]
http://lists.badopi.org/mailman/listinfo/comandob