Crie novos arquivos em script Shell usando VIM

Crie novos arquivos em script Shell usando VIM

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.confcom 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_CONFe o último END_CONFdelimitador será salvo por /etc/httpd/conf.d/cgi-enabled.confmeio 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.cfgisso criará seu arquivo e o preencherá com o conteúdo necessário.

informação relacionada