No quiero escribir el archivo manualmente, así que hice un script de shell. ¿Hay alguna manera de escribir y guardar el archivo automáticamente sin que el usuario presione las teclas?
sudo nano blah
#write stuff to file
#save file
#continue
^ Esto estará dentro de un archivo * .sh
¿O hay otra forma de crear un archivo de texto simple en un script?
$echo "Some text" > afile.txt
?Respuestas:
Para secuencias de comandos más complejas, debería considerar usar el
cat
comando con un documento aquí . El formato básico esHay dos comportamientos sutilmente diferentes dependiendo de si la etiqueta END_TEXT se cita o no:
etiqueta sin comillas : el contenido se escribe después de las expansiones de shell habituales
etiqueta citada : el contenido del documento aquí se trata literalmente, sin las expansiones de shell habituales
Por ejemplo, considere el siguiente script
Los resultados son
y
Si está generando comandos de shell desde su script, probablemente desee el formulario citado.
fuente
END_TEXT
y simplemente usarloCTRL-D
para señalar el final de la entrada. Vea, por ejemplo, Cómo señalar el final de la entrada estándarNo hay necesidad de meterse con un editor para hacer esto.
Puede agregar algo a un archivo con un simple comando echo. Por ejemplo
Agregará "Hola mundo" al archivo
txt
. Si el archivo no existe, se creará.O si el archivo ya puede existir y desea sobrescribirlo
Para la primera línea: y
Para líneas posteriores.
En su forma más simple, el
.sh
script podría contener un conjunto de comandos echo.fuente