Crear un archivo con algún contenido en scripts de Shell


20

Soy un poco nuevo en Shell Scripting y quiero crear un nuevo archivo dentro del script y quiero agregar contenido y luego cerrarlo. No debe tomar los argumentos del usuario. Todo, desde la ruta y el contenido, está predefinido. ¿Cómo puedo hacerlo?

Respuestas:


24

Solo usa la redirección de salida. P.ej

#!/bin/bash

echo "some file content" > /path/to/outputfile

El >escribirá todo stdinproporcionado por el stdoutde echoque el archivo outputfileaquí.

Alternativamente, también podría usar teeuna tubería para esto. P.ej

echo "some file content" | tee outputfile

Tenga en cuenta que cualquiera de los ejemplos sobrescribirá uno existente outputfile.

Si necesita agregar un archivo existente, use en >>lugar de >o tee -a.

Si no acepta la entrada del usuario en esta línea, ninguna entrada del usuario puede cambiar el comportamiento aquí.


Para las personas que desean tener un interruptor de línea dentro de su archivo, consulte aquí: stackoverflow.com/a/9741470/10512595
BelovedFool

18

Creo que es superior usar un documento aquí para crear un nuevo archivo en un script. Tiene un aspecto más limpio, lo que creo que fomenta la legibilidad.

Por ejemplo:

cat > filename <<- "EOF"
file contents
more contents
EOF

El "-"de <<-es opcional, lo que permite guiones con pestañas que se despojaron cuando se crea el archivo. Las comillas alrededor de la "EOF"evitan que el "documento aquí" realice sustituciones.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.