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?
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:
Solo usa la redirección de salida. P.ej
#!/bin/bash
echo "some file content" > /path/to/outputfile
El >
escribirá todo stdin
proporcionado por el stdout
de echo
que el archivo outputfile
aquí.
Alternativamente, también podría usar tee
una 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í.
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.