Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: AdriánT95 en 27 Abril 2017, 12:10 pm



Título: [Linux] - Problema al escribir en un fichero de texto
Publicado por: AdriánT95 en 27 Abril 2017, 12:10 pm
¡Hola!

Me acabo de registrar aquí para postear un problema que estoy teniendo. Resulta que tengo que hacer un script en Linux que me escriba una línea de texto en un archivo. Me explico: Supongamos que ese archivo se encuentra en la carpeta /home/usuario/registro.log. Entonces, yo lo que he hecho en el script ha sido ponerle el siguiente código:

echo "Se ha registrado el usuario $USUARIO" > /home/usuario/registro.log

Y al ejecutar el script desde la terminal, me crea el archivo y con su respectiva línea, pero si lo vuelvo a ejecutar por segunda vez me reemplaza esa línea por la nueva. Yo lo que quiero es que me vaya añadiendo líneas y en cada línea que vaya escribiendo manteniendo lo que ha escrito anteriormente.

No creo que tenga nada que ver, pero cómo dato adicional voy a decir que trabajo con Xubuntu 16.04

¿Alguna ayuda?

¡Muchas gracias! :)


Título: Re: [Linux] - Problema al escribir en un fichero de texto
Publicado por: Maik33 en 27 Abril 2017, 13:03 pm
Cuando utilizamos el símbolo ">" estamos reemplazando todo el contenido del fichero por el nuevo texto. Para que se mantenga el contenido y añadir al final del fichero el nuevo texto hay que utilizar el doble ">":

echo "Se ha registrado el usuario $USUARIO" >> /home/usuario/registro.log


Título: Re: [Linux] - Problema al escribir en un fichero de texto
Publicado por: AdriánT95 en 27 Abril 2017, 13:35 pm
Cuando utilizamos el símbolo ">" estamos reemplazando todo el contenido del fichero por el nuevo texto. Para que se mantenga el contenido y añadir al final del fichero el nuevo texto hay que utilizar el doble ">":

echo "Se ha registrado el usuario $USUARIO" >> /home/usuario/registro.log

Muchas gracias! No sabía ese detalle, he puesto el doble ">" y ahora ya me mantiene el contenido añadiendo nuevas líneas.

Gracias por tu ayuda!  ;)