
Estoy escribiendo un script para automatizar algunos pasos y necesito crear nuevos archivos de configuración con ubicación y texto predefinidos.
Puedo crear los archivos, sin embargo, no estoy seguro de cómo puedo ingresar el texto y guardar los archivos automáticamente usando VIM.
Ejemplo:
Cree un archivo de configuración /etc/httpd/conf.d/cgi-enabled.conf
con el siguiente texto
<Directory "/var/www/html/cgi-enabled">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
y guárdelo, esto me permitiría pasar al siguiente archivo de configuración. Alguna sugerencia ?
Respuesta1
No es necesario comenzar vim
, solo use un documento aquí:
cat >/etc/httpd/conf.d/cgi-enabled.conf <<END_CONF
<Directory "/var/www/html/cgi-enabled">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
END_CONF
El texto entre el último delimitador <<END_CONF
y el último END_CONF
se guardará /etc/httpd/conf.d/cgi-enabled.conf
mediante la redirección de cat
. La elección del delimitador es arbitraria, pero normalmente se utiliza una palabra en mayúscula.
Si tiene variables de shell (o cosas que parecen variables de shell) en el documento aquí ynoSi desea que se reemplacen por sus valores, debe poner entre comillas simples el primero END_CONF
:
cat >/etc/httpd/conf.d/cgi-enabled.conf <<'END_CONF'
<Directory "/var/www/html/cgi-enabled">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
<!-- $HOME will not be expanded here -->
END_CONF
Respuesta2
Si esto es de un script de shell, recomendaría renunciar a vim por completo y en su lugar usar echo, es decir, echo "sample text" > file.cfg
esto creará su archivo y lo completará con el contenido necesario.