Crie novos arquivos no script Shell usando o VIM

0

Estou escrevendo um script para automatizar algumas etapas e preciso criar novos arquivos de configuração com local e texto predefinidos.

Eu posso 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 salve-o, isso me permitiria passar para o próximo arquivo de configuração. Alguma sugestão?

    
por Atul 29.04.2017 / 00:04

2 respostas

1

Se este for de um script de shell, eu recomendaria que você renuncie ao vim e, em vez disso, use echo, ou seja, echo "sample text" > file.cfg , isso criará seu arquivo e o preencherá com o conteúdo necessário.

    
por 29.04.2017 / 00:14
3

Não é necessário iniciar 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 em /etc/httpd/conf.d/cgi-enabled.conf através do redirecionamento por cat . A escolha do delimitador é arbitrária, mas geralmente é usada uma palavra maiúscula.

Se você tem variáveis de shell (ou coisas parecidas com variáveis de shell) no documento here e você não deseja que elas sejam substituídas por seus valores, você deve citar o 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
    
por 29.04.2017 / 00:20