あるシェルスクリプトファイルの内容を別のシェルスクリプトファイルに「マージ」

あるシェルスクリプトファイルの内容を別のシェルスクリプトファイルに「マージ」

lib.sh私のスクリプトに含めることができる定数と関数の「ライブラリ」を持ちます(script.sh)。

. /myfolder/lib.sh
......

スクリプトに含まれているファイル(たとえば./myfolder/lib.shで置き換えられたファイルlib.sh)をマージする方法はありますか?

ベストアンサー1

使用sed:

sed -i.bak '\|^\. /myfolder/lib\.sh| {
    r /myfolder/lib.sh
    d
}' script.sh

このスクリプトの機能は次のとおりです。

  • \|^\. /myfolder/lib\.sh| { ... }=>中括弧で始まる行を見つけ、中. /myfolder/lib.sh括弧内のコマンドを実行します。
  • r /myfolder/lib.sh=>出力内容/myfolder/lib.sh
  • d=> 行の削除( . /myfolder/lib.sh)

もちろん、他の行はそのまま残ります。

おすすめ記事