[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Especificar un comando en una variable y ejecutar su contenido



Hue-Bond wrote:
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
$ _


El problema lo tengo en que quiero tener en una variable el comando completo a ejecutar cuando quiero escribir una fecha:
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.

Un saludo y muchas gracias.


Reply to: