
Estou escrevendo um script para automatizar algumas etapas e preciso criar novos arquivos de configuração com local e texto predefinidos.
Consigo criar os arquivos, mas não tenho certeza de como posso inserir o texto e salvar os arquivos automaticamente usando o VIM.
Exemplo:
Crie um arquivo de configuração /etc/httpd/conf.d/cgi-enabled.conf
com o seguinte texto
<Directory "/var/www/html/cgi-enabled">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
e salvá-lo, isso me permitiria passar para o próximo arquivo de configuração. Alguma sugestão ?
Responder1
Não há necessidade de começar vim
, basta usar um documento aqui:
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
O texto entre <<END_CONF
e o último END_CONF
delimitador será salvo por /etc/httpd/conf.d/cgi-enabled.conf
meio do redirecionamento por cat
. A escolha do delimitador é arbitrária, mas normalmente utiliza-se uma palavra maiúscula.
Se você tiver variáveis de shell (ou coisas que se pareçam com variáveis de shell) no documento aqui e vocênãodeseja que eles sejam substituídos por seus valores, você deve colocar aspas simples no primeiro 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
Responder2
Se for de um script de shell, eu recomendaria abandonar completamente o vim e, em vez disso, usar echo, ou seja, echo "sample text" > file.cfg
isso criará seu arquivo e o preencherá com o conteúdo necessário.