VIMを使用してシェルスクリプトで新しいファイルを作成する

VIMを使用してシェルスクリプトで新しいファイルを作成する

いくつかの手順を自動化するスクリプトを作成しており、定義済みの場所とテキストを含む新しい構成ファイルを作成する必要があります。

ファイルを作成することはできますが、VIM を使用してテキストを入力してファイルを自動的に保存する方法がわかりません。

:

/etc/httpd/conf.d/cgi-enabled.conf次のテキストを含む設定ファイルを作成します

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

これを保存すれば、次の構成ファイルに進むことができます。何か提案はありますか?

答え1

開始する必要はありませんvim。here-document を使用するだけです。

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

ヒアドキュメントにシェル変数(またはシェル変数のように見えるもの)があり、しないこれらを値で置き換えたい場合は、最初の部分を一重引用符で囲む必要があります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

これがシェル スクリプトからのものである場合は、vim を完全に放棄して、代わりに echo を使用することをお勧めします。つまり、echo "sample text" > file.cfgこれによりファイルが作成され、必要なコンテンツが入力されます。

関連情報