El problema lo tengo en que quiero tener en una variable el comando completo a ejecutar cuando quiero escribir una fecha:David Pérez Villanueva, mié20011114@14:54:48(+0100):El comando que quiero ejecutar es: date +'%Y-%m%d %H:%M:%S'. El problema
está en las comillas simples que son necesarias. Si pongo comillas
dobles, me separa el formato por el espacio. ¿Hay forma de 'escapar'
dicho espacio? ¿Se pueden escapar las comillas internas?
No entiendo bien lo que quieres pero espero que te sirva
saber que tanto el espacio como las comillas puedes comentarlas
poniéndoles delante una barra inversa.
$ echo "uolas \"que tal\" bien"
uolas "que tal" bien
$ _
DATE_CMD="date +'%Y-%m%d %H:%M:%S'"
Si ahora intentas ejecutar el comando anterior, $DATE_CMD, obtienes
"date: too many non-option arguments". ¿Por qué sucede esto? Si creamos
un fichero que contenga sólo la línea $DATE_CMD y lo ejecutamos con sh -x
(para ver qué coño ejecuta), vemos que intenta ejecutar:
date '+'\''%Y-%m%d' '%H:%M:%S'\'''Al final lo he resuelto guardando en la variable el formato de la fecha y modificando los scripts para que ejecuten date +$DATE_FORMAT... pero de todas formas estoy intrigado de cómo se puede solucionar esto.