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.
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?
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
Tags bash vim shell-script