私はFreeBSDコンピュータ用の自動インストールスクリプト(bash)を作成しています。いくつかのコマンドライン引数を渡し、必要に応じて設定を適用できるという点で動的です。これは/etc/rc.conf
、ユーザー定義関数やエイリアスなどを使用して/boot/loader.conf
デフォルト値を設定または作成するために使用されます。.profile
今は作成しなければならない値を配列に入れていますが、修正する必要があるファイルも多く、設定する必要がある設定も多すぎてスクリプトが長すぎるようになりました。 。
たとえば、現在12の異なる配列があり、そのうちの1つにのみ25の要素があります。私がそうする理由は、それが伝統的にどのようになされているのかよく分からないからです。
したがって、私が尋ねるのは、プログラムでファイルに書き込むためにこれらの設定(またはより一般的にはデータ)を導入する他の方法があるかどうかです。
答え1
まず第一に、私はBSDの人々がGNU(bashを含む)について非常に悲観的な見方をしていることを知っています。デフォルトのシェルを使用することを検討してください(はい、痛いです...)。
%username%
プレースホルダーなどのスケルトンファイルを使用することを検討し、検索%uid%
と交換で結果の混乱をクリーンアップします。柔軟性のために、次の構成を含むファイルがあります。
%username% joe
%uid% 1000
...
これにより、潜在的に影響を受ける可能性があるすべてのファイルを削除するsedスクリプトを簡単に作成できます。これにより、後で追加の設定でファイルを簡単に追加できます。
できるだけ仕事を作ろうデータ、スクリプトによって生成されません。