使用 VIM 在 Shell 脚本中创建新文件

使用 VIM 在 Shell 脚本中创建新文件

我正在编写一个脚本来自动执行几个步骤,并且需要使用预定义的位置和文本创建新的配置文件。

我可以创建文件,但是我不知道如何使用 VIM 自动输入文本并保存文件。

例子

/etc/httpd/conf.d/cgi-enabled.conf使用以下文本创建配置文件

<Directory "/var/www/html/cgi-enabled">
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl
</Directory>

并保存它,这将允许我继续处理下一个配置文件。有什么建议 ?

答案1

无需启动vim,只需使用此处文档:

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

<<END_CONF和最后一个分隔符之间的文本将通过重定向END_CONF保存到。分隔符的选择是任意的,但通常使用大写单词。/etc/httpd/conf.d/cgi-enabled.confcat

如果此处文档中有 shell 变量(或看起来像 shell 变量的内容)并且您想要将它们替换为它们的值,您应该单引号第一个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

答案2

如果这是来自 shell 脚本,我建议完全放弃 vim,而使用 echo,即echo "sample text" > file.cfg这将创建您的文件并用必要的内容填充它。

相关内容