Necesito crear un archivo de texto (a menos que ya exista) y escribir una nueva línea en el archivo, todo usando bash.
Estoy seguro de que es simple, pero ¿alguien podría explicarme esto?
Si desea esto como una secuencia de comandos, la siguiente secuencia de comandos de Bash debe hacer lo que desee (además de indicarle cuando el archivo ya existe):
#!/bin/bash
if [ -e $1 ]; then
echo "File $1 already exists!"
else
echo >> $1
fi
Si no desea el mensaje "ya existe", puede usar:
#!/bin/bash
if [ ! -e $1 ]; then
echo >> $1
fi
Editar sobre el uso:
Guarde la versión con el nombre que desee, digamos "create_file" (cita el mío, no los quiere en el nombre del archivo). Luego, para hacer que el archivo sea ejecutable, en un símbolo del sistema, haga lo siguiente:
chmod u+x create_file
Coloque el archivo en un directorio en su ruta , luego úselo con:
create_file NAME_OF_NEW_FILE
$ 1 es una variable de shell especial que toma el primer argumento en la línea de comando después del nombre del programa; es decir, $ 1 recogerá NAME_OF_NEW_FILE en el ejemplo de uso anterior.
La creación de un archivo de texto en Unix se puede realizar a través de un editor de texto (vim, emacs, gedit, etc.). Pero lo que quieres puede ser algo como esto
Eso pondrá el texto 'insertar texto aquí' en un archivo myfile.txt. Para verificar que esto funcionó, use el comando 'gato'.
Si desea agregar a un archivo, use este
fuente
Suponiendo que te refieres a los comandos de shell de UNIX, simplemente ejecuta
echo
imprime una nueva línea, y>>
le dice al shell que agregue esa nueva línea al archivo, creando si aún no existe.Sin embargo, para responder correctamente a la pregunta, necesito saber qué le gustaría que sucediera si el archivo ya existe. Si quisiera reemplazar su contenido actual con la nueva línea, por ejemplo, usaría
EDITAR: y en respuesta al comentario de Justin, si desea agregar la nueva línea solo si el archivo aún no existía, puede hacerlo
Al menos eso funciona en Bash, no estoy seguro de si también funciona en otros shells.
fuente
Este código verifica si el archivo JSON dado del usuario está presente en el directorio de inicio de prueba o no. Si no está presente, lo creará con el contenido. Puede modificar la ubicación y el contenido del archivo según sus necesidades.
fuente
Tu pregunta es un poco vaga. Este es un comando de shell que hace lo que creo que quieres hacer:
fuente