cfg
ファイルの設定を読み書きするシェルスクリプトを使って、Linuxの設定ファイルを管理する必要があります。私はkey
の新しいvalue
をスクリプトに使用されている既存の設定ファイルに書き込む機能を持っています。シェルスクリプト経由でsedを使って設定ファイルを管理する
set_setting() {
sed -i "s/$1=[^ ]*/$1=$2/" $3
}
使用法:
set_setting keyname NewValue /home/Config.cfg
したがって、これはNewValue
にConfig.cfg
でkeyname
の値を置き換えます。
また、source
コマンドを使用して設定ファイルを読み取る関数get_setting
があります。同様に2つのパラメータkeyname
とソース設定ファイルを受け入れ、指定されたキーのvalue
を返します。
今問題は、私は次のように設定ファイルがあります。
name=Abc
surname=Xyz
そして、私はset_setting name Def /home/Config.cfg
としてset_setting
関数を呼び出すとき、理想的にはDef
にAbc
からname
の値を変更する必要がありますが、キーname
の値を変更するとともに、それはまた、結果としてDef
にXyz
からsurname
の値を変更configファイルで以下のようにします。期待とname
の値だけが変更されたとして
name=Def
surname=Def
が、私はこれは私がsurnames
にキーsurname
を変えたときのように、両方のキーに共通する用語「名前」を有することに起因している疑いがある、それが働きました。また、キーの値はスペース以外の任意の値にすることができます。
シェルスクリプトの新機能で、最近発見されたのはsed
コマンドです。
私はまた、thisとthisの質問にも言及しました。両方ともかなり役に立ちましたが、私は上記の状況に悩まされています。
私は愚かでした。 :-) どうもありがとう! – Kushal