2011-01-11 59 views

Respuesta

17

Si estás queriendo esto como una secuencia de comandos, el siguiente script Bash debe hacer lo que quiere (más que decir cuando el archivo ya existe):

#!/bin/bash 
if [ -e $1 ]; then 
    echo "File $1 already exists!" 
else 
    echo >> $1 
fi 

Si no desea que el "ya existe" mensaje, puede utilizar:

#!/bin/bash 
if [ ! -e $1 ]; then 
    echo >> $1 
fi 

Editar acerca del uso de:

Guardar la versión que con un nombre que te gusta, digamos "CREATE_FILE" (comillas mío, que no quieren que en el nombre de archivo). Entonces, para hacer que el executatble fichero desde la línea de comandos hacer:

chmod u+x create_file 

Put the file in a directory in your path, a continuación, utilizarlo con:

create_file NAME_OF_NEW_FILE 

El $ 1 es una variable de entorno especial que lleva el primer argumento en el comando línea después del nombre del programa; es decir, $ 1 recogerá NAME_OF_NEW_FILE en el ejemplo de uso anterior.

+0

¿Qué es $ 1, aquí? – switz

+0

¿Podría reemplazarlo por "text.txt"? – switz

+1

@Switz: ver edición explicando $ 1. Si reemplaza $ 1 en el script con "text.txt", siempre usará "text.txt" como el nombre del archivo. – GreenMatt

2

Tu pregunta es un poco vaga. Este es un comando shell que hace lo que yo creo que quiere hacer:

echo >> name_of_file 
10

Suponiendo que quiere decir comandos de Unix, basta con ejecutar

echo >> file.txt 

echo imprime una nueva línea, y el >> dice que el shell añada esa nueva línea al archivo, creando si ya no existe.

Para responder correctamente la pregunta, sin embargo, necesitaría saber qué desea que suceda si el archivo ya existe. Si desea sustituir el contenido actual con la nueva línea, por ejemplo, se usaría

echo > file.txt 

EDIT: y en respuesta al comentario de Justin, si desea agregar la nueva línea sólo si el archivo no lo hizo ya existen, puede hacerlo

test -e file.txt || echo > file.txt 

Al menos eso trabaja en Bash, no estoy seguro si lo hace también en otros proyectiles.

+0

+1. Creo que hay otra interpretación posible: crear y escribir una nueva línea si el archivo aún no existe; de ​​lo contrario, no modifique el archivo en absoluto. –

+0

@Justin: buen punto, creo que también puedo agregar eso y tendremos todas las opciones cubiertas. –

42

La creación de un archivo de texto en Unix se puede hacer a través de un editor de texto (vim, emacs, gedit, etc.). Pero lo que quiere podría ser algo como esto

echo "insert text here" > myfile.txt 

que pondrá el texto 'insertar texto aquí' en un archivo miarchivo.txt. Para verificar que esto funcionó, use el comando 'cat'.

cat myfile.txt 

Si desea anexar a un archivo de utilizar este

echo "append this text" >> myfile.txt 
Cuestiones relacionadas